求1000以内的素数,麻烦各位看看我哪个地方错了,运行结果不对!

来源:百度知道 编辑:UC知道 时间:2024/05/21 09:23:07
#include <stdio.h>
int main()
{
int n,m;
for(n=1;n<=100;n++)
{
for(m=1;m<=n;m++)
{
if(n%1==0&&n%n==0&&n%m!=0)
printf("%d\n",n);
}
}
}
是这样,我是新学C的
用的VC++6.0,现在刚学for循环
break和continue也学了
别的都还没学,所以大家给的都只能看懂一部分额,
真的不好意思啊
能不能加点注释啥的,谢谢了

#include <stdio.h>
int main()
{
int n,m;
for(n=1;n<=100;n++)
{
for(m=2;m<=n;m++)
{
if(n%m==0)
break;
}
if(m==n)
printf("%d ",n);
}
}
从2开始判断,碰到第一个能除尽的数后跳出循环,再判断是否等于自身,若等于就是素数

主体写错了
改为
int n,m,a=0;
for(n=3;n<=1000;n=n+2)
{
for(m=2;m<n;m++)
{
if(n%m!=0){a=1;continue;}
if(n%m==0){a=0;break;}
}
if(a=1){printf("%d\n",n)}
}

#include <stdio.h>
#define MAX 1000
int main()
{
int n,m,f=0;
printf("2\n");
for(n=3;n<=MAX;n++)
{
f=0;
for(m=2;m<n;m++)
{
if(n%m==0) {f=1;break;}

}
if(f==0) printf("%d\n",n);
}
}
根据你程序改的,看不懂叫我

n%n==0 这个有啥意义?

m=2