C语言怎么判定素数

#include<stdio.h>
#include<math.h>
main()
{int i,j,k;
for(i=101;i<=200;i+2)
{j=sqrt(i);
for(k=2;k<=j;k++)
{if(i%k==0) break;}
if(k==j) printf("%d",i);
}
}
在C++6.0上运行上面的代码怎么只显示光标其他什么也没有啊?代码错在哪里了?

#include<stdio.h>
#include<math.h>
main()
{
int i,k;
for(i=101;i<=200;i=i+2){
for(k=2;k<=i;k++){
if(i%k==0)
break;
}
if(k==i)
printf("%d\n",i);
}
}
这个我运行过了,可以的。
只要把那步i=sqrt(i)去掉就行了。不然就是死循环了。追问

为什么啊?书上是那样写的啊?C++没有这个函数?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-06
#include<stdio.h>
#include<math.h>
void main()
{
int i,k;

for(i=101;i<=200;i++)
{
double j=sqrt(i);
for(k=2;k<=j;k++)
{
if(i%k==0)
break;
}
if(k>j)
{
printf("%d\n",i);
}
}
}
第2个回答  2011-11-05
;i+2
先改成i=i+2
再说
第3个回答  2011-11-05
for(i=101;i<=200;i+2)//i一直等于101,这是个死循环
第4个回答  2020-02-19