质数计数

已关闭
dadingPython / C++入场费 1 金币5 次提交

题目描述

给定一个整数 n,返回小于 n 的质数个数。

质数是大于1的自然数,除了1和它本身外没有其他因数。

例如:n=10,小于10的质数有2、3、5、7,共4个。 n=0或n=1时,结果为0。

输入格式

一个整数 n(0 ≤ n ≤ 5000000)

输出格式

一个整数,表示小于 n 的质数个数

输入输出样例

样例 1

输入:

10

输出:

4

样例 2

输入:

1

输出:

0

说明/提示

数据规模可达5×10^6,逐个判断O(n√n)会超时,考虑埃拉托斯特尼筛法(Sieve of Eratosthenes),时间O(n log log n)。