九度OJ題目1047:素數判定

題目1047:素數判定

時間限制:1 秒

內存限制:32 兆

特殊判題:

題目描述:

給定一個數n,要求判斷其是否爲素數(0,1,負數都是非素數)。

輸入:

測試數據有多組,每組輸入一個數n。

輸出:

對於每組輸入,若是素數則輸出yes,否則輸入no。

樣例輸入:
13
樣例輸出:
yes
來源:
2009年哈爾濱工業大學計算機研究生機試真題
#include <stdio.h>
#include <stdbool.h> //使用了布爾類型需添加該頭文件
#include <math.h> //使用了求平方根函數sqrt需添加該頭文件
bool judge(int x){  //對每個數依次測試大於1但不大於其平方根的數字能否整除它
	if(x<=1)	return false;
	int bound=(int)sqrt(x)+1;//計算枚舉上界,根號值取整後再加1是爲防止double值帶來的精度損失
	for(int i=2;i<bound;i++){
		if(x%i==0)	return false;
	}
	return true;
}
int main(){
	int n;
	while(scanf("%d",&n) != EOF){
		puts(judge(n)?"yes":"no");//依據函數返回值輸出答案
	}
	return 0;
}
/************************************************************** 
    Problem: 1047 
    User: zpy
    Language: C++ 
    Result: Accepted 
    Time:0 ms 
    Memory:1032 kb 
****************************************************************/  


 

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