• 素数的判断与素数表的获取


    1、素数的判断 O(sqrt(n))

    bool isprime(int n) {
        if (n <= 0)
            return false;
        int sqr = (int)sqrt(1.0 * n);
        for (int i = 2; i <= sqr; i++) {
            if (n % i == 0)
                return false;
        }
        return true;
    }

    2、素数表的获取

    暴力筛 O(n√n)

    const int maxn = 101;
    int prime[maxn], pnum = 0;
    bool p[maxn] = { false };
    void findPrime() {
        for (int i = 1; i < maxn; i++) {
            if (isprime(i)) {
                prime[pnum++] = i;
                p[i] = true;
            }
        }
    }

    埃氏筛法 O(nloglogn)

    const int maxn = 101;
    int prime[maxn], pnum = 0;
    bool p[maxn] = { false };
    void findPrime() {
        for (int i = 2; i < maxn; i++) {
            if (!p[i]) {
                prime[pnum++] = i;
                for (int j = i + i; j < maxn; j++) {
                    p[i] = true;
                }
            }
        }
    }
  • 相关阅读:
    centos 研究
    python学习6 web开发
    python学习5 常用三方模块
    python学习4 常用内置模块
    python学习 3笔记
    SQLite
    mysql
    python学习 2数学公式
    python学习 1基础
    shell example02
  • 原文地址:https://www.cnblogs.com/cicinnus/p/13291720.html
Copyright © 2020-2023  润新知