1. 程式人生 > >函式之判斷素數

函式之判斷素數

                                   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是因為先預設為真了,所以只有在真的條件下才能執行,當迴圈到某個地方已經判斷為假時,就不用再往後了,因為已經有結果了!