题解 | #质数的计数#

质数的计数

http://www.nowcoder.com/practice/190167d1990442da9adb133980259a27

线性筛法

public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 
     * @return int整型
     */
    int primesCount(int n) {
        // write code here
        // 筛选法
        vector<bool> flag(n);
        vector<int> primes;
        for (int i = 2; i < n; i ++ ) {
            if (!flag[i]) {
                primes.push_back(i);
            }
            for (int j = 0; primes[j] <= n / i; j ++ ) {
                flag[primes[j] * i] = true;
                if (i % primes[j] == 0) break;
            }
        }
        return primes.size();
    }
};

时间复杂度:O(n)

全部评论
这啥思路,没看懂,有人讲讲不?
点赞 回复 分享
发布于 2023-01-02 23:16 北京

相关推荐

11-22 16:49
已编辑
北京邮电大学 Java
美团 质效,测开 n*15.5
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务