这里是求100到200之间的素数 这个程序为什么没有输出呢 求解啊 用C写的

2025-04-24 01:22:25
推荐回答(3个)
回答1:

问题出在这里
for(i=2;i<=k;i++)
if(m%i==0)
break;
应该在for循环后面加上{}
要不然你每次执行完for循环后都会跳出外层循环,所以就一直没有结果
改为for(i=2;i<=k;i++)
{if(m%i==0)
break;
}

回答2:

/*你的代码修改后如下:*/
#include "stdio.h"
#include "math.h"
void main()
{
int m,i,n=0;
int k;
for(m=101;m<=200;m=m+1)
{
k=sqrt(m);
for(i=2;i<=k;i++)
{
if(m%i==0)
break;
}

if(i>=k+1)
{
printf("%d\n",m);
n=n+1;
}
if(n%10==0)
printf("\n");
}
printf("\n");
}
/*
运行结果为:
101
103
107
109
113
127
131
137
139
149

151
157
163
167
173
179
181
191
193
197

199

Press any key to continue
*/

回答3:

k=sqrt(m); 改成: k=(int)sqrt(m); 需要强制转换为整数