小白,求大神帮忙看一下,到底哪出错了

小白,求助,求大神帮忙看一下,到底哪出错了?
#include<stdio.h> 
  int main()
      {int a,i,n,m;
      int sum=0;
      int c=0;
      int isPrime=1;
      scanf("%d %d",&n,&m);
       for(i=2;i<1000;i++){
       for (a=2;a<i;a++){
       if(i%a==0){
       isPrime=0;
       break;
  }
}if(isPrime==1){
c++;
 if(n==c){
sum+=i;
n++;
if(m==c){
printf("%d\n",sum);
break;
}
}
    }
}
return 0;

g
------解决思路----------------------
#include<stdio.h> 
  int main()
      {int a,i,n,m;
      int sum=0;
      int c=0;
      int isPrime=1;
      scanf("%d %d",&n,&m);
       for(i=2;i<1000;i++){
         isPrime=1;
       for (a=2;a<i;a++){
       if(i%a==0){
       isPrime=0;
       break;
  }
}if(isPrime==1){
c++;
 if(n==c){
sum+=i;
n++;
if(m==c){
printf("%d\n",sum);
break;
}
}
    }
}
return 0;

------解决思路----------------------
对挖,如果改成了for(i=2;i>0;i++)会无限死循环诶
------解决思路----------------------
i 每次循环, isprime都需要重新初始化,在;m==c时会break 当然不会死循环
------解决思路----------------------
引用:
对挖,如果改成了for(i=2;i>0;i++)会无限死循环诶

不会的,i加到一定程度就会变负数了。小白,求大神帮忙看一下,到底哪出错了