27 lines
803 B
Java
27 lines
803 B
Java
import java.util.Arrays;
|
|
|
|
public final class ErdosNicolasNumbers {
|
|
|
|
public static void main(String[] aArgs) {
|
|
final int limit = 100_000_000;
|
|
|
|
int[] divisorSum = new int[limit + 1];
|
|
int[] divisorCount = new int[limit + 1];
|
|
Arrays.fill(divisorSum, 1);
|
|
Arrays.fill(divisorCount, 1);
|
|
|
|
for ( int index = 2; index <= limit / 2; index++ ) {
|
|
for ( int number = 2 * index; number <= limit; number += index ) {
|
|
if ( divisorSum[number] == number ) {
|
|
System.out.println(String.format("%8d", number) + " equals the sum of its first "
|
|
+ String.format("%3d", divisorCount[number]) + " divisors");
|
|
}
|
|
|
|
divisorSum[number] += index;
|
|
divisorCount[number]++;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|