亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

素數的算法

#include <stdio.h>
int main()
{
??? int m, n;
??? for(m=3; m<=50; m++)
??? {
?? ??? ?for(n=2; n<m; n++)
??????? {
??????????? if(?? m%n==0?? )?????? //什么條件下跳出當前循環
??????????? break;???????????? //這里應該退出當前循環了
?? ??? ?}?? ?
??????? if(m == n)?? //n循環結束后,如果m=n的話就輸出m
??????????? printf("%d? ", m);
?? ?}
?? ?return 0;?? ?
}

看不太懂???求大神講解一下。比如說m%n==0這個地方和m==n這個地方?

正在回答

4 回答

m%n==0 能整除

m == n 到了循環的結束?

質數(prime number)又稱素數,有無限個。一個大于1的自然數,除了1和它本身外,不能整除以其他自然數(質數),換句話說就是該數除了1和它本身以外不再有其他的因數;否則稱為合數。

0 回復 有任何疑惑可以回復我~
#1

Obscure 提問者

那為什么要把3和2開始比較 ???還是不太懂- 。-
2015-01-17 回復 有任何疑惑可以回復我~
#2

Obscure 提問者

非常感謝!
2015-01-19 回復 有任何疑惑可以回復我~
#3

我的仰視30 回復 Obscure 提問者

不是指把3和2進行比較。for(m=3; m<=50; m++)是把3到50的數循環遍歷了一遍。其實素數就是質數,因此素數指的是只能被1和其本身整除的數,那么必然2到其本身減一的數都不能被它整除,所以可以通過for(n=2; n<m; n++)if( m%n==0 ) 來讓它依次除以2到其本身減一的數,這樣結果如果為0,這意味著不是素數,反之為素數。
2015-01-24 回復 有任何疑惑可以回復我~

1不是素數,其實素數也就是質素!在我剛才發的程序中?printf("2 ");的2后面有空格,不要忘了!

0 回復 有任何疑惑可以回復我~

我覺得2也是素數,因此正確如下:

#include <stdio.h>

int main()

{

? ? int m, n;

? ? printf("2 ");

? ? for(m=3; m<=50; m++)

? ? {

for(n=2; n<m; n++)

? ? ? ? {

? ? ? ? ? ? if(m%n==0) ? ? ? //什么條件下跳出當前循環

? ? ? ? break; ? ? ? ? ? ? ? ? //這里應該退出當前循環了

}

? ? ? ? if(m == n) ? //n循環結束后,如果m=n的話就輸出m

? ? ? ? ? ? printf("%d ?", m);

}

return 0; ? ?

}


0 回復 有任何疑惑可以回復我~

1, 2 都是素數

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926904    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

素數的算法

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號