题目:

统计所有小于非负数整数 n 的质数的数量。

示例:

输入: 10
输出: 4
解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7

解题思路:

 

代码实现:

class Solution {
public:
    bool isPrime(int num) {
        if (num <= 1) return false;
        for (int i = 2; i*i <= num; ++i) {
            if (num%i == 0) return false;
        }
        return true;
    }

    int countPrimes(int n) {
        bool *isPrime = new bool[n];
        for (int i = 2; i < n; ++i) {
            isPrime[i] = true;
        }
        for (int i = 2; i*i < n; ++i) {
            if (!isPrime[i]) continue;
            for (int j = i*i; j < n; j += i) {
                isPrime[j] = false;
            }
        }
        int count = 0;
        for (int i = 2; i < n; ++i) {
            if (isPrime[i]) count++;
        }
        return count;
    }
};

 

相关文章:

  • 2022-02-13
  • 2021-07-28
  • 2021-05-24
  • 2021-06-29
  • 2021-09-14
  • 2022-12-23
  • 2021-09-09
  • 2021-12-30
猜你喜欢
  • 2022-01-08
  • 2022-01-21
  • 2021-12-20
  • 2022-12-23
  • 2022-12-23
  • 2021-12-04
  • 2021-08-25
相关资源
相似解决方案