这个程序能运行,但就是不输出结果,到底是如何了

这个程序能运行,但就是不输出结果,到底是怎么了?
#include<stdio.h>
#include<math.h>

void main()
{
int i=999,j=0,k,sum=0;
while(j!=10)
{
for(k=2;k<=sqrt(i);k++){
if(i%k!=0&&k==sqrt(i))//符合条件 一直到最后也没有能被除的
{
j++;
sum+=i;
i-=2;
}if(i%k==0) {i-=2;break;}}
}
printf("素数1+素数2+素数+……+素数10=%d\n",sum);

}

额……有点儿难看,拜托各种大侠了,这个程序是
输出1000以内最大的10个素数以及它们的和。
1、由于偶数不是素数,可以不对偶数进行处理
2、输出形式为:素数1+素数2+素数+……+素数10=总和值
我调试的时候老是到一些地方出现错误,错误处我看不懂,我想知道到底是我的编译器有问题还是我的程序写得的问题。。

------解决方案--------------------
sqrt 问题...

太简单了。。来晚了。。接点分