素数问题
Description
对于大于1的自然数,如果n为素数,那么所有大于1且不大于n的平方根的自然数都不能整除n,反之亦然。所以我们可以通过测试来确定n是否为素数。现在给出n,要你求是否为素数,是输出Yes,否则输出No
每行一个正整数n,n<=2^31,如果n为0,则输入结束。判断n是否为素数
每行输出一个用例的结果,如果是输出"Yes",否则输出“No”
Sample Input
2
3
4
5
6
0
Sample Output
Yes
Yes
No
Yes
No
Source
ericxie #include<stdio.h>
#include<math.h>
int main()
{
int a,b,i,flag=0;
while(1)
{
scanf("%d",&a);
if(a!=0)
{
b = sqrt(a);
for(i=2;i<=b;i++)
{
if(a%i==0)
{
flag=1;
break;
}
else
flag=0;
}
if(flag)
printf("NO\n");
else
printf("Yes\n");
}
else
break;
}
}
这是我自己打的程序,测试数据都是对的,交上去就是“wrong answer”对于大于1的自然数,如果n为素数,那么所有大于1且不大于n的平方根的自然数都不能整除n,反之亦然。所以我们可以通过测试来确定n是否为素数。现在给出n,要你求是否为素数,是输出Yes,否则输出No
每行一个正整数n,n<=2^31,如果n为0,则输入结束。判断n是否为素数
每行输出一个用例的结果,如果是输出"Yes",否则输出“No”
Sample Input
2
3
4
5
6
0
Sample Output
Yes
Yes
No
Yes
No
Source
ericxie #include<stdio.h>
#include<math.h>
int main()
{
int a,b,i,flag=0;
while(1)
{
scanf("%d",&a);
if(a!=0)
{
b = sqrt(a);
for(i=2;i<=b;i++)
{
if(a%i==0)
{
flag=1;
break;
}
else
flag=0;
}
if(flag)
printf("NO\n");
else
printf("Yes\n");
}
else
break;
}
}