classSolution(object): defcountPrimes(self, n): """ :type n: int :rtype: int """ # 6 star, 没做出来 # 用一个长度为n的列表,记录每个索引是否是素数,首先将其全部标记为1, # 然后由于0,1都不是素数,将前两个标记为0,从2开始到根号n, 将这些数的所有倍数全部排除,剩下的就是素数了 if n < 3: return0 is_prime = [1for _ in range(n)] is_prime[:2] = [0, 0] for i in range(2, int(n ** 0.5) + 1): if is_prime[i] == 1: for j in range(2 * i, n, i): is_prime[j] = 0 return sum(is_prime)