用python11.编写程序,使用进程池Pool并行判断100000以内的正整数是否是素数,并统计素数的个数。
时间: 2024-03-14 13:45:36 浏览: 218
Python判断一个正整数是否为素数的算法
5星 · 资源好评率100%
以下是使用 `multiprocessing` 模块中的 `Pool` 实现并行判断100000以内的正整数是否是素数,并统计素数个数的 Python 代码:
```python
import multiprocessing as mp
def is_prime(n):
"""判断正整数是否是素数"""
if n <= 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
if __name__ == '__main__':
pool = mp.Pool(mp.cpu_count()) # 获取 CPU 核心数作为进程池的大小
nums = range(1, 100001)
results = pool.map(is_prime, nums) # 利用 map 方法并行执行 is_prime 函数
pool.close()
pool.join()
count = sum(results) # 统计素数的个数
print("100000以内的素数个数为:", count)
```
在上述代码中,首先定义了一个 `is_prime` 函数用于判断正整数是否是素数。然后使用 `if __name__ == '__main__':` 来判断是否为主程序,创建进程池 `pool` 并使用 `pool.map` 方法对 `nums` 序列中的每个元素并行执行 `is_prime` 函数,将结果保存在 `results` 列表中,最后使用 `sum` 函数统计素数的个数并输出。
阅读全文