Ciel221 2021-11-10 18:48 采纳率: 80%
浏览 68
已结题

找出500-600之间的质数

找出500-600之间的质数,输出时显示“质数是501.502……”(数字是我乱写的)

  • 写回答

1条回答 默认 最新

  • 来把薯条 2021-11-10 19:04
    关注

    这是利用筛法求质数的代码:

    
    #include <stdio.h>
    #include <stdbool.h>
    
    const int N = 650;
    bool flag[650]; // 埃氏筛法
    
    int main(void)
    {
        for (int i = 0; i < N; i++)
            flag[i] = true;
        flag[0] = flag[1] = false;
        for (int i = 2; i < N; i++)
            for (int j = i + i; j < N; j += i)
                flag[j] = false;
        printf("Prime:");
        for (int i = 500; i < 600; i++)
            if (flag[i])
                printf("%d.", i);
        puts("");
        return 0;
    }
    

    这是一个判断一个数是不是质数的函数,也可以利用循环来分别判断一个数是不是质数

    bool isPrime(int n)
    {
        if (n < 2)
            return false;
        if (n == 2)
            return true;
        for (int i = 2; i <= n / i; i++)
            if (n % i == 0)
                return false;
        return true;
    }
    
    

    找出的质数如下:

    503.509.521.523.541.547.557.563.569.571.577.587.593.599.
    

    望采纳,谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月15日
  • 已采纳回答 11月10日
  • 创建了问题 11月10日