我用C语言键入了以下程序:
#include <stdio.h>
int main ()
{
int i = 1, a = 2;
while (i <= 300)
{
while (a < i)
{
if (i % a == 0)
break;
else
printf ("%d\n", i);
a++;
}
i++;
}
return 0;
}
程序正在打印许多非素数值,例如
295
,275
等。请帮助,我是一个初学者,缺乏很多经验。
最佳答案
除了您没有将a
重置为2之外,还没有正确放置printf()
语句。这将打印任何不能被2除的i
数(即使可以被另一个数除)。
像这样更改代码:
#include <stdio.h>
int main ()
{
int i = 1, a = 2, is_prime;
while (i <= 300)
{
is_prime = 1;
while (a < i)
{
if (i % a == 0) {
is_prime = 0;
break;
}
a++;
}
if(is_prime)
printf ("%d\n", i);
a = 2;
i++;
}
return 0;
}
关于c - 在C中找到素数从1到300,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25400191/