代码功能:使用进程池判断素数,统计100000000以内的素数个数。
from multiprocessing import Pool
def isPrime(n):
if n<2:
#非素数返回0,不统计
return 0
if n==2:
#素数返回1,方便统计
return 1
#位运算,偶数为非素数,不再判断
if not n&1:
return 0
for i in range(3, int(n**0.5)+1, 2):
if n%i == 0:
return 0
return 1
if __name__ == '__main__':
#最多5个进程同时工作
with Pool(5) as p:
print(sum(p.map(isPrime, range(100000000))))