函數之判斷素數

                                   Problem C: 判斷素數

Description

寫一個判斷素數的函數,在主函數輸入一個整數,輸出是否是素數的消息。

Input

一個數

Output

如果是素數輸出prime 如果不是輸出not prime

#include <iostream>

using namespace std;

int main()

{

int prime(int);

int n;

cin>>n;

if(prime(n))

cout<<"prime"<<endl;

else

cout<<"not prime"<<endl;

return 0;

}


int prime(int n)

{

int p=1,i;

for(i=2;i<=n/2&&p==1;i++)

if(n%i==0)

p=0;

return p;

}


素數是隻能被1和它本身整除的一類特殊的數,所以,要編寫一個程序尋找這類數,如果一個數還能被其他的數整除,就不符合要求;

輸入的數據默認爲素數,所以定義一個變量爲真(int p=1);

檢查時只檢查到該數的一半就可以(因爲一個數分爲兩個數的乘積時,一定一個大一個小),只要能被其他數整除,即餘數爲0(if(n%i==0)),那就可以判斷爲假(p=0;);

之所以在循環語句中有&&p==1是因爲先默認爲真了,所以只有在真的條件下才能運行,當循環到某個地方已經判斷爲假時,就不用再往後了,因爲已經有結果了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章