C语言:用while循环实现计算1000以内的素数

#include
#include
int main()
{
int i=1,n=0,m;
while(i<1000)
{
m=i%n;
n++;
if(m==0)
i++;
else
{
printf("1000以内的素数为:%d\t",i);
i++;
}
}
return 0;
}

img


为啥运行后是个空白呢?

看你的截图就知道你的代码肯定哪里有问题,程序正常结束运行会返回0的

img

再看看代码,逻辑完全是错的,如果你不会判断素数的话,可以参考一下我的这篇文章:算法-如何求解质数


#include <stdio.h>
#include<math.h>
int main()
{
    int n,i,k,m=0;
    for(n=2;n<1000;n=n+1)
    {  k=sqrt(n);
        for(i=2;i<=k;i++)
        {if(n%i==0) break;}
            if(i>=k+1) {printf("%d\t",n);
            m=m+1;}
            if(m%10==0)
            printf("\n");
    }
    return 0;
}

参考一下