我正在嘗試編寫一個程序,該程序使用謂詞方法來查找1-100之間的所有素數。我知道現在有更有效的方法來尋找素數,但是現在我想使用強力策略並嘗試所有可能的組合。
現在的程序就是這樣,只是打印真假10000次,但我希望我的程序只打印數字,如果它們是素數。所以在程序完成後,我會得到一個介於1到100之間的素數列表。
1.我的程序是否正確? 2.什麼是最好的建議改變我的程序,以便它列出1-100之間的所有素數。編寫一個方法來查找素數
import acm.program.*;
public class PrimeNumbers extends ConsoleProgram{
public void run(){
for (int i =1; i <= 100, i++){
for (int j =1; j<= 100; j++){
println(yesPrime(i, j));
}
}
}
private boolean yesPrime (int n, int k){
return (n % k == 0)
}
}
}
'yesPrime '只檢查n是否可以被k整除。那真的是你想要的嗎? – FDinoff
只是一個提示:爲了通過使用蠻力來查找素數,您需要驗證數字N是否只能由1和自身整除。你的'yesPrime'方法不處理這個問題。 –
您可能想要使用http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes – Bill