首页 > 解决方案 > C中从1到100的质数

问题描述

我正在编写一个程序来查找从 1 到 100 的素数。请检查我的代码是否正确。当我运行我的代码时,素数没有被打印出来。请帮忙。

#include <stdio.h>
#include <conio.h>

int main()
{
    int i, j, flag, rem;
    flag=0;

    printf("2");
    for(i=3; i<=100; i++)
    {
        for(j=2; j<=i; j++)
        {
            rem = i%j;
            if(rem == 0)
            {
                flag=1;
                break;
            }
        }
        if(flag==0)
        {
            printf("%d", i);  
        }
    }
    getch();
    return 0;
}

标签: c

解决方案


更改for (j = 2; j <= i; j++)for (j = 2; j <= i/2; j++)。您需要循环到i/2.

int main()
{
    int i, j, flag, rem;
    printf("2\n");
    for (i = 3; i <= 100; i++)
    {
        flag = 0;
        for (j = 2; j <= i/2; j++)
        {
            if (i % j == 0)
            {
                flag = 1;
                break;
            }
        }
        if (flag == 0)
            printf("%d\n", i);
    }
    getch();
    return 0;
}

推荐阅读