C程序显示100-200之间的素数!

来源:百度知道 编辑:UC知道 时间:2024/06/22 00:41:29
求100-200之间的素数,代码如下:
#include<stdio.h>
#include<stdafx.h>
void main()
{
int a,b;
for(a=101;a<=200;a+=2)
{
for(b=2;b<a;b++)
if (a%b==0) break;
printf("%d\t",a);
}
}
请问错在什么地方?现在程序运行结果是100-200之间的所有奇数。好向程序中的条件语句没有实现,并没有筛选出合格的数值来!请指点,谢谢先!!!
if(b>=a) printf("%d\t",a);谢谢青衣,为什么这里一定要b>=a才能输出正确结果呢。这条语句的含义是什么??

#include<stdio.h>
void main()
{
int a,b;
for(a=101;a<=200;a+=2)
{

for(b=2;b<a;b++)
{
if (a%b == 0) break;

}
if(b>=a) printf("%d\t",a);

}
}

你的打印逻辑有问题
我建议这样

for(b=2;b<a;b++)
if (a%b==0) break;
printf("%d\t",a);

改为

bool f=1;
for(b=2;b<a;b++)

if (a%b==0) {f=0;break;}
if (f)
printf("%d\t",a);

#include<stdio.h>

void main()
{
int a,b,k;
for(a=101;a<=200;a+=2)
{k=0;
for(b=2;b<a;b++)
if (a%b==0) k=1;
if(k==0)
printf("%d\t",a);
}
}

#include<stdio.h>
#include<math.h>
void main()
{ int m,k,i,n=0;
for(m=101;m<=200;m=m+2)
{ k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0) break;
if(i>=k+1)
{ printf(&quo