1. 程式人生 > >編寫函式判斷一個整數是否為素數

編寫函式判斷一個整數是否為素數

題目內容:

編寫函式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<<" ";
		}
					
		}
		
	}
	
}