それで、私はプログラミングを学び始め、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 メソッドはループの外では正常に機能しますが、ループ内では常に true です。偶数でもtrueを返しますが、それらはあまり重要ではないと思います:)