編寫函式判斷一個整數是否為素數
阿新 • • 發佈:2019-01-30
題目內容:
編寫函式int isprime(int a);用來判斷整數a是否為素數,若是素數,函式返回1,否則返回0。呼叫該函式找出任意給定的n個整數中的素數。 注意,1不是素數。
輸入格式:
一系列待判斷的正整數,以空格隔開,以0表示輸入結束。
輸出格式:
只輸出輸入的正整數中的素數,順序和輸入一致。資料間以一個英文空格隔開,最後一個數據後沒有空格!!! 注意,1不是素數。
輸入樣例:
9 8 7 210 101 0
輸出樣例:
7 101
#include <iostream> #include <cstring> using namespace std; #include <cmath> int isprime(int a){ int mark=1; if(a==1) { mark=0; } for(int i=2;i<=a/2;i++){ if(a%i==0) { mark=0;break; } } if(mark==1) //是素數; return 1; else if(mark==0)//不是素數; return 0; } int main() { int a[100];int mark=0; for(int i=0;;i++,mark++){ cin>>a[i]; if(a[i]==0) break; } int c[mark];// 標記陣列是素數的 for(int i=0;i<mark;i++){ if(isprime(a[i])==1) { c[i]=1; } } int num=0;//尋找最後的素數位置 for(int i=0;i<mark;i++){ if(c[i]==1) num=i; } for(int i=0;i<mark;i++){ if(c[i]==1){ cout<<a[i]; if(i!=num){ cout<<" "; } } } }