因此,我开始学习编程并尝试使用 java 进行项目 euler。问题 10 看起来很简单,我想我可以使用以前在另一个问题中获取素数的方法。问题是,该方法有效,除非我将它放在 for 循环中,并且我无法看到这个和另一个之间的区别。
所以这是我的代码
package euler10;
public class Primesum {
public static void main(String[] args) {
int suma=0;
for (int i=0; i<2000000; i=i+2){
if (isPrime(i) == true){
System.out.println(i);
suma=suma+i;
}
}
System.out.println(suma);
}
public static boolean isPrime(int num) {
boolean prime = false;
long i;
for (i=2; i < Math.sqrt(num) ; i++){
long n = num%i;
if (n == 0){
prime = false;
} else {
prime = true;
}
}
return prime;
}
}
isPrime 方法在循环之外工作得很好,但在其中它总是正确的。即使是偶数,它也会返回真,我认为这些不是很重要:)