用C语言输出3到100中的所有素数,我这样写可以吗

2025-01-01 19:55:05
推荐回答(2个)
回答1:

错的
#include "stdio.h"
void main()
{int a,b;
for(a=3;a<=100;a++){
for(b=2;b if(a%b==0)
break;
if(a == b)
printf("%4d",a);
}

这样是对的,中间大括号可能加的不对,你自己改一下。
你的程序这样等于一直在输出。

回答2:

程序存在明显的问题,2-a之间,有一个不能整除,就表示质数?这显然不成立,如9%2=1,可是9不是质数。 修改代码如下:

#include "stdio.h"
void main()
{
int a,b;
for(a=3;a<=100;a++)
{
for(b=2;b if(a%b==0) //如果有因数,则不再继续找下去了
break;
if ( b >= a ) //如果2-a间没有因数,循环走完,说明是质数
printf("%4d",a);
}
}