统计所有小于非负整数 n 的质数的数量。
等我学了《数论》,我就来填筛选法的坑!这里先背一下代码!!
要的到n以内的全部素数,必须要把不大于根号n素数的倍数全部剔除,剩下的就是素数:
2是素数,2留下,2的倍数全部剔除;3是素数,3留下,三的倍数全部剔除...
class Solution: def countPrimes(self, n: int) -> int: if n < 2: return 0 isPrime = [1] * n isPrime[0] = 0 isPrime[1] = 0 for i in range(2, int(n ** 0.5) + 1):
isPrime[i*i:n:i] = [0] * ((n - 1 - i*i)//i + 1) return sum(isPrime)
原文:https://www.cnblogs.com/canaan233/p/13721352.html