关于#c语言#的问题:每行8个输出100-999内质数,不理解哪里出错

题目问题:以每行8个的形式输出100-999内的质数。
出现的错误:会出现591这种非质数。不理解是哪里出错
代码:

#include 
#include 

int main()
{
    int i,j,count;
    count=0;
    for(i=100;i<999;i++)
    {
        for(j=2;j<=i;j++)
        {
            if(i%j==0)
            {
                break;
            }
            else
            {
                count++;
                printf(" %d ",i);
                if(count%8==0)
                  {
                       printf("\n");
                  }
                  break;
            }
        }
    }
    return 0;
}


问题截图:

img

你要 内循环完了 再 输出对应的数据。参考如下修改:

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int i,j,count;
    count=0;

    for(i=100;i<999;i++)
    {
        for(j=2;j<i;j++)
        {
            if(i%j==0)
            {
                break;
            }
        }
        if (j == i) 
        {
            count++;
            printf("%d ",i);
            if(count%8==0)
            {
                printf("\n");
            }
        }
    }
    return 0;
}

修改如下,供参考:

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

int main()
{
    int i, j, count;
    count = 0;
    for (i = 100; i < 999; i++)
    {
        for (j = 2; j < i; j++)  //for(j = 2; j <= i; j++) 修改
        {
            if (i % j == 0)
            {
                break;
            }
        }   // 修改
        if (j >= i); //else 修改
        {
            count++;
            printf(" %d ", i);
            if (count % 8 == 0)
            {
                printf("\n");
            }
            //break;  修改
        }
    }
    return 0;
}