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