杭电ACM2012

#include#includeintmain(){intn,x,y,i,sum,k,c;while(scanf("%d%d",&x,&y)!=EOF){if(x==0&... #include#includeint main(){ int n,x,y,i,sum,k,c; while(scanf("%d %d",&x,&y)!=EOF) { if(x==0&&y==0) break; k=0; for(i=x;i<=y;i++) { c=0; sum=i*i+i+41; for(n=2;n<=sqrt(sum);n++) { if(sum%n==0) c++; } k++; } if(k==(y-x+1)&&c==0) printf("OK\n"); else printf("Sorry\n"); } return 0;}总是0_0_10181405_15061.cpp0_0_10181405_15061.cpp(16) : error C2668: “sqrt” : 对重载函数的调用不明确 \include\math.h(626): 可能是“long double sqrt(long double)” \include\math.h(578): 或 “float sqrt(float)” \include\math.h(200): 或 “double sqrt(double)” 试图匹配参数列表“(int)”时这个错误 展开
 我来答
刘邦也霸气
2014-02-28 · TA获得超过320个赞
知道小有建树答主
回答量:75
采纳率:0%
帮助的人:57.1万
展开全部
楼主代码写好点; 前面
#include<stdio.h>
#include<math.h>
然后你的k在这道里面没意义,c赋初值应该在k的那个位置,才能判断X到Y所有的值域符合素数,像你的那样只能判断最后一个数字。这是在你的基础上改的代码。
#include<stdio.h>
#include<math.h>
int main()
{
int n,x,y,i,sum,k,c;
while(scanf("%d %d",&x,&y)!=EOF)
{
if(x==0&&y==0) break;
c=0;
for(i=x;i<=y;i++)
{

sum=i*i+i+41;
for(n=2;n<sum;n++)
{
if(sum%n==0)
c++;
}

}
if(c==0)
printf("OK\n");
else
printf("Sorry\n");
}
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式