-2 java
我试图解决这个问题并编写代码,但它不起作用.我尝试使用断点它似乎工作,但它没有..我哪里出错了?
第10个欧拉问题:低于10的素数之和为2 + 3 + 5 + 7 = 17.找出低于200万的所有素数之和.
我的java代码:
public class Problem_010 {
public static void main(String[] args) {
long sum = 0;
boolean control = false;
for (int i = 3; i < 2000000; i+=2) {
control = true;
for (int j = 2; j < i; j++) {
if ((i % j) == 0) {
control = false;
break;
}
}
if (control == true) {
sum = sum + i;
}
}
System.out.println("Sum: " + (sum+2));
}
}
Run Code Online (Sandbox Code Playgroud)
答案是正确的,如果你运行它足够长,它只是非常低效.试试这个.
public static void main(String... ignored) {
long sum = 2;
for (int i = 3; i < 2000000; i += 2) {
if (isPrime(i))
sum += i;
}
System.out.println("Sum: " + sum );
}
private static boolean isPrime(int i) {
for (int j = 3; j * j <= i; j += 2) {
if (i % j == 0)
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)