素数判定
题目描述:
给定一个数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;
}

博客围绕素数判定问题展开,给定数n判断是否为素数,测试数据多组,素数输出yes,非素数输出no。还提及Dev C++和Visual Studio代码编译情况,如VS2012出现“sqrt”重载函数调用不明确错误,修改代码后编译成功。
380

被折叠的 条评论
为什么被折叠?



