求小于n的所有素数,按照每行10个显示出来。输出和题目一样,但是为什么不对呢?

问题描述:

求小于n的所有素数,按照每行10个显示出来。

Input
输入整数n(n<10000)。

Output
每行10个依次输出n以内的所有素数。

Sample Input
100
Sample Output
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97

{
int n,i,j,a=0;
scanf("%d",&n);

for(i=2;i<=n;i++)
{
    for(j=2;j<=i;j++)
    {
        if(j==i)
        {
            printf("%d ",i);
            a++;

            if(a%10==0)
            {
                printf("\n");
            }


        }

        if(i%j==0)
        {
            break;
        }

    }


}

    return 0;

}

供参考:

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

#include <stdio.h>
#include <stdlib.h>

int main()
{
int n,i,j,a=0;
scanf("%d",&n);

for(i=2;i<=n;i++)
{
    for(j=2;j<=i;j++)
    {
        if(j==i)
        {
            printf("%d ",i);
            a++;
            if(a%10==0)
            {
                printf("\n");
            }


       }

        if(i%j==0)
        {
            break;
        }

    }





}


return 0;

}
怎么解决这个格式错误?谢谢