问题出在这里
for(i=2;i<=k;i++)
if(m%i==0)
break;
应该在for循环后面加上{}
要不然你每次执行完for循环后都会跳出外层循环,所以就一直没有结果
改为for(i=2;i<=k;i++)
{if(m%i==0)
break;
}
/*你的代码修改后如下:*/
#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
*/
k=sqrt(m); 改成: k=(int)sqrt(m); 需要强制转换为整数