区间内素数(输出素数)请问我这样做存在什么问题,要怎么改正

任务描述
编程输入两个整数a,b(2<=a

输入格式
两个整数a和b。

输出格式
区间[a,b]内的所有素数,逗号分隔。

输入样例:
2 31
输出样例:
2,3,5,7,11,13,17,19,23,29,31
输入样例:
100 110
输出样例:
101,103,107,109


#include
int main(){
    int a,b,i,j,c=0;
    for(i=a;ic=0;
        for(j=1;jif(i%j!=0){
                if(c==0){
                    printf("%d",j);
                    c=1;
                }else{
                    printf(",%d",j);
                }
            }
        }
    }
    return 0;
}

应该等判断完了再输出,你这是每一次判断都输出了

 
#include<stdio.h>
int main(){
    int a,b,i,j,c=0;
    scanf("%d %d", &a,&b);
    for(i=a;i<=b;i++){
        int flag = 1;
        if(i<2) flag=0;
        for(j=2;j<i;j++){
            if(i%j==0){
                flag = 0;
                break;
            }
        }
        if(flag){
            if(c==0){
                printf("%d",i);
                c=1;
            }else{
                printf(",%d",i);
            }
        }
    }
    return 0;
}