C语言简单的编程 请牛人指出一下异常,新人初学者 勿喷

C语言简单的编程 请牛人指出一下错误,新人菜鸟 勿喷
编程程序求出m,n之间所有素数(包括m和n),其中n>m。
输入形式
输入一行,包括整数m和n。
输出形式
输出一行,输出m与n间的所有素数,各数之间以空格分隔。若无素数,则输出“no”。


#include<stdio.h>
int main()
{
int i,j,m,n,a=0,b=0;
scanf("%d%d",&m,&n);
    for(i=m;i<=n;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)a=a+1;
}
if(a<=1)
{
printf("%d ",i);
b++;
}
}
if(b==0)printf("no");
printf("\n");
return 0;
}
------解决思路----------------------
a循环每次都要清零:

#include <stdio.h>

int main(int argc, char* argv[])
{
    int m;
    int n;
    int a;
    int b = 0;
    int i;
    int j;
    
    scanf("%d%d", &m, &n);
    for(i = m; i <= n; i++)
    {
        a = 0;
        for(j = 2; j <= i; j++)
        {
            if((i%j) == 0)
            {
                a = a + 1;
            }
        }
        if(a <= 1)
        {
            printf("%d ",i);
            b++;
        }
    }
    
    if(b == 0)
    {
        printf("no");
    }
    printf("\n");
    
    return 0;