C语言 找出3-100的全部素数 不知道哪里错了QAQ求大神详解 拜托拜托
#include <stdio.h>
int main()
{
int n,k,i,m=0;
for(n=3;n<=100;n++)
{for(i=2;i<=k-1;i++)
{k=n%i;
if(k==0)break;
else printf("%d ",n);
}
m=m+1;
if(m%10==0)printf("\n");
}
printf("\n");
return 0;
}
输出的话 什么东西都没有QAQ
最佳答案
改好的程序你看下
#include <stdio.h>
int main()
{
int n, k, i, m = 0;
for(n = 3; n <= 100; n++)
{
for(i = 2; i <= n - 1; i++) //循环不对,这里可用sqrt(n)
{
k = n % i;
if(k == 0)break;
// else printf("%d ", n); 这个判断也错的
}
if (i==n) //这个才对
{
printf("%d ", n);
m = m + 1;
if(m % 10 == 0)printf("\n");
}
}
printf("\n");
return 0;
}
其他回答
其它网友回答:
第二个for循环 应该是i≤n-1,而且素数的输出应该在第一个for循环里而不是第二个for循环里,逻辑有问题,最后,算法有可以优化的地方