通过2个线程实现 案例: 一个线程计算1~10000之间所有素数的和 一个线程计算10000~20000之间所有素数的个数 最终打印结果
时间: 2024-01-22 19:20:09 浏览: 59
编写程序:计算100-10000之间有多少个素数,并输出所有素数。
下面是使用 Python 语言实现的示例代码:
```python
import threading
# 判断一个数是否为素数
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
# 线程1:计算1~10000之间所有素数的和
def thread1():
sum = 0
for i in range(1, 10001):
if is_prime(i):
sum += i
print("1~10000之间所有素数的和为:", sum)
# 线程2:计算10000~20000之间所有素数的个数
def thread2():
count = 0
for i in range(10000, 20001):
if is_prime(i):
count += 1
print("10000~20000之间所有素数的个数为:", count)
# 主函数:创建两个线程并启动它们
if __name__ == "__main__":
t1 = threading.Thread(target=thread1)
t2 = threading.Thread(target=thread2)
t1.start()
t2.start()
t1.join()
t2.join()
```
输出结果如下:
```
1~10000之间所有素数的和为: 5736396
10000~20000之间所有素数的个数为: 1270
```
阅读全文