60 lines
1.3 KiB
Java
60 lines
1.3 KiB
Java
public final class SummarizePrimes {
|
|
|
|
public static void main(String[] args) {
|
|
final int start = 1;
|
|
final int finish = 1_000;
|
|
|
|
int sum = 0;
|
|
int count = 0;
|
|
int summarizedCount = 0;
|
|
|
|
for ( int p = start; p < finish; p++ ) {
|
|
if ( isPrime(p) ) {
|
|
count += 1;
|
|
sum += p;
|
|
|
|
if ( isPrime(sum) ) {
|
|
String word = ( count == 1 ) ? " prime" : " primes";
|
|
System.out.println(
|
|
"The sum of " + count + word + " in [2, " + p + "] is " + sum + ", which is also prime.");
|
|
summarizedCount++;
|
|
}
|
|
}
|
|
}
|
|
|
|
System.out.println(System.lineSeparator() +
|
|
"There are " + summarizedCount + " summarized primes in [" + start + ", " + finish + "].");
|
|
}
|
|
|
|
private static boolean isPrime(int number) {
|
|
if ( number < 2 ) {
|
|
return false;
|
|
}
|
|
|
|
if ( number % 2 == 0 ) {
|
|
return number == 2;
|
|
}
|
|
|
|
if ( number % 3 == 0 ) {
|
|
return number == 3;
|
|
}
|
|
|
|
int test = 5;
|
|
while ( test * test <= number ) {
|
|
if ( number % test == 0 ) {
|
|
return false;
|
|
}
|
|
|
|
test += 2;
|
|
if ( number % test == 0 ) {
|
|
return false;
|
|
}
|
|
|
|
test += 4;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
}
|