[英]How to find prime numbers
嗨,我用C语言编写,下面是我的代码。 我正在尝试输入一个输入,以使用模数检查键入数字的人是否是质数。 但是,在第一个if语句中出现错误。 错误是浮点异常(核心已转储),为什么会这样? 我不允许将值与0比较吗?
#include <stdio.h>
int main()
{
int i = 0, j = 0, count = 0, value = 0, stop = 0;
scanf("%d", &j);
stop = j;
for(i = 0; i < stop; ++i)
{
value = j % i;
if(value == 0)
{
++count;
}
}
if(count>1)
{
printf("YES");
}
else
printf("NO");
return 0;
}
下面实际上是我的问题,尽管我可以得到输出,但我无法使编译正确进行。 输入
t –测试用例的数量,然后是t个测试用例。 [t <= 500]每行包含一个整数:N [2 <= N <= 2 ^ 63-1]输出
对于每个测试用例,如果给定数字为质数,则输出字符串“ YES”,否则为“ NO”。
#include <stdio.h>
int main()
{
int i = 0, j = 0, count = 0, value = 0, stop = 0, store[]={0}, s = 0;
scanf("%d", &j);
stop = j;
for(i = 1; i < stop; ++i)
{
value = j % i;
if(value == 0)
{
store[s]=value;
++count;
++s;
}
}
if(count>=2 || j==1 )
{
printf("NO");
}
else
printf("YES");
return 0;
}
我敢打赌,您会在if
语句之前收到错误消息:
value = j % i;
这是因为您从i
= 0开始:
for(i = 0; i < stop; ++i)
由于模运算符%
是除法运算,因此将0用作第二个操作数是不合法的。 您得到除以零的错误。
顺便说一句:以1开头是没有意义的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.