素数判定
题目描述:
给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。
输入:
测试数据有多组,每组输入一个数n。
输出:
对于每组输入,若是素数则输出yes,否则输出no。
样例输入:
13
样例输出
yes
来源:
2009哈尔滨工业大学计算机研究生机试真题
Dev C++代码:
#include<stdio.h>
#include<math.h>
bool judge(int x){
if(x<=1) return false;
int bound=(int)sqrt(x)+1;
for (int i=2;i<=bound;i++){
if(x%i==0) return false;
}
return true;
}
int main(){
int x;
while(scanf("%d",&x)!=EOF){
puts(judge(x) ? "yes":"no");
}
return 0;
}
VS2012 error C2668: “sqrt”: 对重载函数的调用不明确-已解决
编译时出现错误:error C2668: “sqrt”: 对重载函数的调用不明确
将第五行改为:
int bound=(int)sqrt(float(x))+1;
则编译成功。
Visual Studio 代码:
#include<stdio.h>
#include<math.h>
bool judge(int x){
if(x<=1) return false;
int bound=(int)sqrt(float(x))+1;
for (int i=2;i<=bound;i++){
if(x%i==0) return false;
}
return true;
}
int main(){
int x;
while(scanf("%d",&x)!=EOF){
puts(judge(x) ? "yes":"no");
}
return 0;
}