为什么这个代码运行次数很少?

#include
void isprime(int m, int n);
int main() {
    int m, n;
    scanf_s("%d %d", &m, &n);
    isprime(m,n);
    return 0;
}
void isprime(int m, int n) {
    int c=0,i,j,x=1;
    for (i = m; i <= n; i++) {

        for (j = 2; j < i; j++) {

            if (i % j == 0) {
                x = 0;
                break;
            }

        }
        if (x == 1 && i != 0) {
            printf("%d ", i);
            c++; 
        }
        if (c % 10 == 0) printf("\n");
    }


}

给定区间输出其中的素数,我输入2 100,它输出2 3然后就没有了,我输入6 7,它给我输出了两行空白。请问这个代码错在哪里了。谢谢!

在判断素数函数里面,第二个循环前加上x=1

img