這篇博客來講講如何判斷一個正整數是否為素數。
(素數:在大於1的自然數中,除了1和它本身以外不再有其他因數的自然數;反之,則是合數。)
如圖所示,首先定義三個變量:m , i , flag 。
其中,m表示這個正整數,需要人為手動輸入;
i表示除數,i從2開始遞增,i每增1,就要用m除以i,若能夠整除則說明m除了1和它本身以外存在其他因數,m是合數;若不能整除,則m是素數;
那么如何表示一個數的素合性呢?我們定義了一個變量——flag;
當這個數是素數時,我們使flag=1;合數時,flag=0;
scanf("%d",&m); 不必多說,輸入一個數給m,
我們重點講一下for循環:
首先,將i賦初值為2,且i每一次參加運算前都要進行判斷,判斷i是否<=m/2,若是,則進行循環體語句;若否,則退出for;
循環體語句中是一個if語句,判斷m能否被i整除,若能,則使flag=0,且退出循環;若不能,則i++,重新進行for語句。
接下來是一個if語句,條件是flag;如果flag=1,即判斷條件為真,則輸出“素數”;否則,輸出“合數”。
因為本人平時練習的多是運用函數調用的方法,所以這次我並沒有用函數調用。
下面是運行結果:
接觸C語言半年了,第一次寫博客,如有不足,還請大家指正,感謝!