遺憾的「修復我的代碼」後檢查一個int是首要的Java
編輯:更多有關的for
環比質數,現在也解決了語法。
我的任務是從控制檯取出一個int並打印出(在不同的行上)從1到n的所有素數。 我的方法從n開始,檢查它的素數,然後將n遞減1並循環,直到n = 2。 要檢查一個數是否爲素數,我運行一個循環,檢查是潛水的剩餘部分,x的數量等於零,x從2開始並在根(n)處停止。 現在,這一切都在理論上,並閱讀我的代碼,我沒有看到它出錯的地方。
public class Prime {
public static boolean isPrime(int n) {
boolean result = true;
for (int x = 2; x>=sqrt(n); x++) {
if ((n % x) == 0) {
result = false;
break;
} else {
x++;
}
}
return result;
}
public static void main(String[] args) {
Scanner intIn = new Scanner(System.in);
int i = intIn.nextInt();
while (i>=2) {
if (isPrime(i)) {
System.out.println(i);
i--;
} else {
i--;
}
}
}
}
例如爲10的輸入將返回10(連同9,8,7,6,5,3),即使isPrime()檢查是否10%2 == 0,然後設置到result
假。 我在這裏錯過了什麼?
我再次爲煩人(輕微重複)的問題表示歉意。
的可能的複製[如何在Java中工作這種素數測試?](https://stackoverflow.com/questions/19514680/how-does-this-prime-number-test-in-java-工作) – Ice