背景:统计质数个数是很基础的问题了,但是在n非常大的时候,不够快速的算法就会卡到效率瓶颈,下面是5个不同复杂度的算法。
(1)暴力解法
(2)缩小范围
(3)数论引入
(4)欧拉解法
(5)最快解法
1. 暴力解法:
直接挨个去看是不是质数,判断质数的方法就看是不是能够被1和自身之外的整数整除
class Solution:
def countPrimes(self, n):
"""
:type n: int
:rtype: int
"""
count = 2
if n < 2:
return 0
elif n == 2:
return 0
elif n == 3:
return 1
elif n