C语言 求素数个数 洛谷有几个测试点没过

请问哪里出错了
https://www.luogu.com.cn/problem/T175211

#include<stdio.h>
int main() {
    int m,n,i,count,flag=1;
    scanf("%d %d",&m,&n);
    if(m<=2) {
        count=2;
        for(m=4; m<=n; m++) {
            for(i=2; i<m; i++) {
                if(m%i==0) {
                    flag=0;
                    break;
                } else flag=1;
            }
            if(flag==1) count++;
        }
    } else if(m>=3) {
        count=1;
        for(m=4; m<=n; m++) {
            for(i=2; i<m; i++) {
                if(m%i==0) {
                    flag=0;
                    printf("%d ",m);
                    break;
                } else flag=1;
            }
            if(flag==1) count++;
        }
    }
    printf("%d",count);
}

img


错误输入和输出在图片中,不建议这么写,单独判断0、1、2也不费事,这么写代码容易错