编写一个有两个线程的程序,第一个线程用来计算2~100000之间的素数的个数,第二个线程用来计算100000~200000之间的素数的个数,最后输出结果
时间: 2024-03-25 16:38:38 浏览: 82
好的,这是一个使用 Python 语言编写的多线程程序:
```python
import threading
# 判断是否为素数的函数
def is_prime(n):
if n <= 1:
return False
if n == 2 or n == 3:
return True
if n % 2 == 0 or n % 3 == 0:
return False
i = 5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True
# 第一个线程用来计算2~100000之间的素数的个数
def count_primes1():
count = 0
for n in range(2, 100001):
if is_prime(n):
count += 1
print("2~100000之间的素数的个数为:", count)
# 第二个线程用来计算100000~200000之间的素数的个数
def count_primes2():
count = 0
for n in range(100001, 200001):
if is_prime(n):
count += 1
print("100000~200000之间的素数的个数为:", count)
# 创建两个线程
t1 = threading.Thread(target=count_primes1)
t2 = threading.Thread(target=count_primes2)
# 启动两个线程
t1.start()
t2.start()
# 等待两个线程结束
t1.join()
t2.join()
# 输出结果
print("总共的素数个数为:", count1 + count2)
```
这个程序创建了两个线程,分别计算2~100000之间的素数的个数和100000~200000之间的素数的个数。主线程等待两个计算线程结束后,输出总共的素数个数。
阅读全文