時間限制:1 秒
內存限制:32 兆
特殊判題:否
- 題目描述:
-
給定一個數n,要求判斷其是否爲素數(0,1,負數都是非素數)。
- 輸入:
-
測試數據有多組,每組輸入一個數n。
- 輸出:
-
對於每組輸入,若是素數則輸出yes,否則輸入no。
- 樣例輸入:
-
13
- 樣例輸出:
-
yes
#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
****************************************************************/