杭电ACM2012 素数判定。
素数判定TimeLimit:2000/1000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmi...
素数判定
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 22088 Accepted Submission(s): 7413
Problem Description
对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。
Input
输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。
Output
对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。
Sample Input
0 1
0 0
Sample Output
OK
我的程序。
#include<stdio.h>
#include<math.h>
int main()
{
int x,y,n,i,j,k,s,p=0;
while(scanf("%d%d",&x,&y)!=EOF)
{
if(x==0&&y==0) break;
if(x>y)
{
int t=x;
x=y;
y=t;
}
for(i=0,n=x;n<=y;n++,i++)
{
s=n*n+n+41;
k=sqrt(n);
for(j=2;j<=k;j=j+1)
{
if(s%j==0)
{
p=1;
break;
}
if(p)
break;
}
}
if(p) printf("Sorry\n");
else printf("Ok\n");
}
return 0;
}
帮我看下哪里错了 展开
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 22088 Accepted Submission(s): 7413
Problem Description
对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。
Input
输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。
Output
对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。
Sample Input
0 1
0 0
Sample Output
OK
我的程序。
#include<stdio.h>
#include<math.h>
int main()
{
int x,y,n,i,j,k,s,p=0;
while(scanf("%d%d",&x,&y)!=EOF)
{
if(x==0&&y==0) break;
if(x>y)
{
int t=x;
x=y;
y=t;
}
for(i=0,n=x;n<=y;n++,i++)
{
s=n*n+n+41;
k=sqrt(n);
for(j=2;j<=k;j=j+1)
{
if(s%j==0)
{
p=1;
break;
}
if(p)
break;
}
}
if(p) printf("Sorry\n");
else printf("Ok\n");
}
return 0;
}
帮我看下哪里错了 展开
1个回答
展开全部
#include<stdio.h>
#include<math.h>
int main()
{
int x,y,n,i,j,k,s,p=0;
while(scanf("%d%d",&x,&y))
{
p=0;//每次都要进行初始化
if(x==0&&y==0) break;
if(x>y)
{
int t=x;
x=y;
y=t;
}
for(n=x;n<=y;n++)
{
s=n*n+n+41;
k=sqrt((double)s);//这里应该是s不是n
for(j=2;j<=k;j++)//注意for的范围
if(s%j==0)
{
p=1;
break;
}
if(p)break;
}
if(p) printf("Sorry\n");
else printf("OK\n");//这里是OK不是Ok
}
return 0;
}
#include<math.h>
int main()
{
int x,y,n,i,j,k,s,p=0;
while(scanf("%d%d",&x,&y))
{
p=0;//每次都要进行初始化
if(x==0&&y==0) break;
if(x>y)
{
int t=x;
x=y;
y=t;
}
for(n=x;n<=y;n++)
{
s=n*n+n+41;
k=sqrt((double)s);//这里应该是s不是n
for(j=2;j<=k;j++)//注意for的范围
if(s%j==0)
{
p=1;
break;
}
if(p)break;
}
if(p) printf("Sorry\n");
else printf("OK\n");//这里是OK不是Ok
}
return 0;
}
华芯测试
2024-09-01 广告
2024-09-01 广告
电学测试台是深圳市华芯测试科技有限公司的核心设备之一,它集成了高精度测量仪器与自动化控制系统,专为半导体芯片、电子元件及模块的电性能检测而设计。该测试台能够迅速、准确地完成电压、电流、电阻、电容及频率等关键参数的测试,确保产品质量符合行业标...
点击进入详情页
本回答由华芯测试提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询