我必須找到10001st素數是104753,但是當我運行我的代碼時,我得到104754.小錯誤10001st素數java代碼?
我需要幫助查找問題。我可以改變什麼,以便找到10001的素數? 感謝
這是我迄今所做的:
public class Prime
{
public static void main(String[] args)
{
int a = 1;
int primes = 0;
while (primes < 10001)
{
if (isPrime(a) == true)
{
primes++;
}
a++;
}
System.out.println("The 10001st prime number is " + a);
}
public static boolean isPrime(int b)
{
boolean x = false;
int counter = 0;
for (int i=1; i<=b; i++)
{
if (b%i == 0)
{
counter++;
}
if (counter == 2 && i == b)
{
x = true;
}
}
return x;
}
}
歡迎來到Stack Overflow!要求人們發現代碼中的錯誤並不是特別有效。您應該使用調試器(或者添加打印語句)來分析問題,追蹤程序的進度,並將其與預期發生的情況進行比較。只要兩者發生分歧,那麼你就發現了你的問題。 (然後,如果有必要,你應該構建一個[最小測試用例](http://sscce.org)。) –
請使用正確的縮進,它使你的代碼更具可讀性! – Dragondraikk
哪個素數不正確?我建議你打印出你的素數,看看它與已知的素數列表不同。順便說一句,你可以讓你的isPrime * *效率更高。 –