Project Euler #7 に取り組んでいますが、プログラムが機能しない理由がわかりません。問題は次のとおりです。
最初の 6 つの素数 (2、3、5、7、11、13) をリストすると、6 番目の素数が 13 であることがわかります。
10 001 番目の素数は何ですか?
これはこれまでの私のプログラムです:
public class Euler7 {
public static void main (String[] args) {
long count = 1;
long primes = 0;
while (primes <= 10001) {
if (isPrime(count)){
primes++;
if (primes == 10001) {
System.out.println(count);
}
}
count++;
}
}
public static boolean isPrime (long i) {
if (i <= 1) return false;
else if (i == 2 || i == 3) return true;
else if (i % 2 == 0 || i % 3 == 0) return false;
else {
for (int n = 3; n < Math.sqrt(i); n+=2) {
if (i % n == 0) {
return false;
}
}
return true;
}
}
}
編集:明確にするために、値104033を返しますが、WolframAlphaは10001番目の素数が104743であると言います