求素数和,但是sum和cnt最后等于0

#include
int main()
{
int m,n;
int cnt=0;
int sum=0;
scanf("%d %d",&m,&n);
int i;
int a=1;
if(m==1)
{
m=2;
}
for(i=m;i<=n;i++)
{
int k;
for(k=2;k
{
if(i%k==0)
{
a=0;
break;
}
}
if(a==1)
{
cnt++;
sum+=i;
}
}
printf("cnt=%d\nsum=%d",cnt,sum);
return 0;
}

#include<stdio.h>
int main()
{
    int m,n;
    int cnt=0;
    int sum=0;
    scanf("%d %d",&m,&n);
    int i;
    int a=1;
    if(m==1)
    {
        m=2;
    }
    for(i=m;i<=n;i++)
    {
        int k; 
        a = 1;//每次判断一个数a都要重新赋值为1
        for(k=2;k < i && i!=2;k++)//这里是k < i不是k < n
        {
            if(i%k==0)
            {
                a=0;
                break;
            }
        }
        if(a==1)
        {
            //printf("%d\n",i);
            cnt++;
            sum+=i;
        }
    }
    printf("cnt=%d\nsum=%d",cnt,sum);
    return 0;
}

每次循环后 a = 1在赋值一下,不然在循环里面a都是0