package pe37test;
/**
*
* @author Caleb
*/
public class Main {
static final int clim = 1000000;
static boolean nums[];
public static void main
(String[] args
) {
int sum=0;
findPrimes();
System.
out.
println("Generates primes in: " +
((t2 - t1
) * 1e
-6) +
" milliseconds");
for (int i = 0; i < clim; i++) {
if (nums[i]) {
if (truncateCheck(i)) {
sum += i;
}
}
}
System.
out.
println("Sum:"+sum
);
System.
out.
println("Execution time: " +
((t2 - t1
) * 1e
-6) +
" milliseconds");
}
public static boolean truncateCheck(int number) {
for (int i =
1; i <
String.
valueOf(number
).
length(); i++
) { if (nums
[Integer.
parseInt(String.
valueOf(number
).
substring(i
))]==
false) { return false;
}
if (nums
[Integer.
parseInt(String.
valueOf(number
).
substring(0, i
))] ==
false) { return false;
}
}
return true;
}
public static void findPrimes() {
nums = new boolean[clim + 1];
for (int i = 2; i <= clim; i++) {
nums[i] = true;
}
for (int i = 2; i * i <= clim; i++) {
if (nums[i]) {
for (int j = i; i * j <= clim; j++) {
nums[i * j] = false;
}
}
}
}
}