C语言:这样求100以内的素数为啥不对呢?

来源:百度知道 编辑:UC知道 时间:2024/06/15 17:18:07
#include<stdio.h>
main()
{int n,i;
for(n=1;n<=100;n++)
for(i=2;i<=(n-1);i++)
{ if(n%i==0)break;

if(i>n-1)
printf("%4d\n",n);
}

}

#include<stdio.h>
main()
{int n,i;
for(n=1;n<=100;n++)
{
for(i=2;i<=(n-1);i++)
{
if(n%i==0) break;
}
if(i>n-1)printf("%4d\n",n);//把这个放在i循环体外面
}
}

你在内循环里面,而内循环的条件是i<=(n-1),怎么可能(i>n-1)呢

改为
for(n=2;n<=100;n++)
{ for(i=2;i<=(n-1);i++)
if(n%i==0)break;

if(i>n-1)
printf("%4d\n",n);
}

#include<stdio.h>
main()
{int n,i;
for(n=1;n<=100;n++)
{
for(i=2;i<=(n-1);i++)
{
if(n%i==0)
break;
}
if(i>n-1)//你把他放到break的下面 就不可能对
printf("%4d\n",n);
}

}