需要求出n以内的素数,我这个代码出了什么问题吗?

#include <stdio.h>

int main() {
int x, y, a, b, i, j;
scanf("%d", &a);
for (i = 2; i <= a; i++) {
for (j = 2; j <= i; j++) {
b = i % j;
if ((b == 0) && (j != i ))
continue;
printf("%2d", i);
break;
}
}
return 0;
}


#include <stdio.h>

int main()
{
    int x, y, a, b, i, j,flag;
    scanf("%d", &a);
    for (i = 2; i <= a; i++)
    {
        flag = 1;
        for (j = 2; j < i; j++)
        {
            b = i % j;
            if (b == 0){
                flag = 0;
                break;
            }
        }
        if(flag == 1) printf("%2d ", i);
    }
    return 0;
}