2009-10-28 112 views
3
int main() 
{ 
int i,j; 

for (i=1; i<=25; i++) 
{ 
    for (j=2; j<= i/2; j++) 
    if (!(i%j)) break; 
    if (j>i/2) cout << i << "\n"; 
} 
return 0; 
} 

該程序(不是我寫的)輸出從1到25的素數,包括1,即使1不是素數。是否(!(i%j))表示不是i的模數,j = 0?

我有這條線的麻煩:if (!(i%j)) break;

這是不是說「不是我的模量和j = 0

+0

素數的典型定義是,如果n只有因子1和n,則n是質數。你使用的是什麼定義的素數?1不是素數? – 2009-10-29 00:02:09

+1

1確實不是素數:http://mathworld.wolfram.com/PrimeNumber.html – harto 2009-10-29 00:04:57

+0

「1以前被一些數學家認爲是素數,使用的定義是一個素數只能被一個和它自己整除 然而,這個複雜因此現代定義不包括單位。最後一位公開給1號素數標記的專業數學家是1899年的亨利·勒貝格。 – 2009-10-29 05:49:40

回答

15

!(i%j)是一樣的(i%j)==0,還是?‘我被J’

整除
3

兩個以下行基本上相同(就邏輯雲):

if (!(i%j)) 
if ((i % j) == 0) 

的方式編號讀取的第一使其更清楚的是「如果沒有來自i/j的餘數」,即i可被j整除。

相關問題