帮看一下到底哪里出错了,循环好像只走了一次

/给出整数M和N之间的素数个数并对他们求和/

#include<stdio.h>
main()
{
    int m,n,i,j,isPrime = 1,sum = 0,cnt = 0;
    m = 10;
    n = 31;
    for(i = m+1;i < n;i++){
        for (j = 2;j < i;j++){
            if (i % j == 0){
                isPrime = 0;
                break;
            }
        }
        if(isPrime == 1){
            sum += i;    
            cnt++;    
        }    
    }
    printf("%d %d",cnt,sum);
}

报错如下:

img

int main()
{
    int m,n,i,j,isPrime = 1,sum = 0,cnt = 0;
    m = 10;
    n = 31;
    for(i = m+1;i < n;i++){
        isPrime = 1;  //这里要增加标志变量的复位,否则循环中isPrime会一直是0
        for (j = 2;j < i;j++){
            if (i % j == 0){
                isPrime = 0;
                break;
            }
        }
        if(isPrime == 1){
            sum += i;    
            cnt++;    
        }    
    }
    printf("%d %d",cnt,sum);
}