我把問題PO在BBS上,
有人給我以下建議:
搜尋 2~100 的質數 {
變數:目前想要檢查的數字 ;
變數:目前想要檢查的數字是或不是質數;
檢查是否可以被 2~(目前想要檢查的數字-1)整除 {
如果可以被某一個整除. 那設定 變數:目前想要檢查的數字是或不是質數 為 不是(false).
}
如果在上一個檢查迴圈已經知道不是質數了. 那就不要列印出來.
否則就列印出來.
}
希望這樣說明, 提問者可以理解程式應該有的邏輯.
我依照他的指點寫了以下程式:
複製程式
class Prime
{
public static void main(String[] args)
{
for (int i=1; i<=100; i++)
{
for (int j=2; j<=(i-1); j++)
{
if (i % j == 0)
{
break;
}
else
{
System.out.println(i);
}
}
}
}
}
但會出現以下問題:
印出來的結果,少了2這個質數,並且多了9和99這兩個不是質數的數字,
而且印出的質數會有很多個,例如5會印出三個,7會印出五個,11會印出八個,
要如何讓質數只能印出一個呢?