求100以内的素数,C语言

#include<stdio.h>
int main()
{
int n,i;
for(n=3;n<=100;n++)
{
for(i=1;i<100;i++)
if(n%i==0)break;
else
printf("%d\n",n);
}
return 0;
}这样为什么不行啊

C语言经典例子之求100之内的素数

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-14
这样写:
#include<stdio.h>

int main()
{
int n,i;
int flag;

for(n=2;n<=100;n++)
{
flag = 1; //利用标志判断是不是质数
for(i=2;i<n;i++) //约数从2开始
if(n%i==0)
{
flag = 0; //一旦有一个约数,那么就不是质数了
break;
}
if (flag) printf("%d\n",n); //printf放到for里面就会打印多次
}
return 0;
}本回答被提问者和网友采纳
第2个回答  2011-06-27
for(i=1;i<100;i++)
if(n%i==0)break;
所有数除以1都可以整除啊,这里应该是i从2开始循环

而且最外层循环也不对,应该是n=2,不然2这个素数就错过了
第3个回答  2011-06-27
#include<stdio.h>
int main()
{ int n,i;
for(n=3;n<=100;n++)
{ for(i=2;i<n;i++)
if(n%i==0)break;
else
printf("%d\n",n);
}
return 0;
相似回答