python 求指定数中质数(素数)数量

前端之家收集整理的这篇文章主要介绍了python 求指定数中质数(素数)数量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

质数,又称素数,指在大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数(也可定义为只有1和本身两个因数的数)。比1大但不是素数的数称为合数。1和0既非素数也非合数。素数在数论中有着非常重要的地位。

求质数代码

@H_502_4@import math def sieve(size):     sieve = [True] * size     sieve[0] = False     sieve[1] = False     for i in range(2,int(math.sqart(size)) + 1):         k = i *2         while k < size:             sievep[k] = False             k += i     return sum(1 for x in sieve if x)      print sieve(10000000000) >>> 455052511

其他方法

@H_502_4@@numba.jit() def cur(size):     sieve = [True] * size     sieve[0] = False     sieve[1] = False     if size == 2:         return sieve     factor = [index for index, val in enumerate(cur(int(math.sqrt(size)+1))) if val]     for i in factor:         k = i * 2         while k < size:             sieve[k] = False             k += i     return sieve   def up(size):     sieve = cur(size)     return sum(1 for x in sieve if x)


猜你在找的Python相关文章