洁柔金尊和face的区别:请问我的语言有什么错误???

来源:百度文库 编辑:中科新闻网 时间:2024/05/15 04:33:21
下面是我写的求2到100的素数,请问哪里错了???为什么运行时什么数都显示出来???
int num(int a)
{int x;
for(x=2;x<a;x++)
if(a%x==0)return 1;
}
main()
{int i,j;
for(i=2;i<=100;i++)
{j=num(i);
if(j=1)printf("%d\n",i);
j=0;}
}
X怎么可能大于A呢???
我运行下面那个,结果25也是,其实25应该不是吧!
是不是应该吧<改成<=

for(x=2;x<a;x++)
if(a%x==0)return 1;
这里逻辑错误
表示从2到a只要有一个能整除a 就返回1
应该这样改
for(x=2;x<a;x++)
if(a%x==0) break;
if (x>=a) return 1;
return 0;

#include <stdio.h>
#include <math.h>

int num(int a)
{int x;
for(x=2;x<sqrt(a);x++)
if(a%x==0) return 0;
return 1;
}
void main()
{int i,j;
for(i=2;i<=100;i++)
{j=num(i);
if(j)printf("%d\n",i);
}
}