写一个计算1-100以内素数的python代码
时间: 2024-05-05 13:15:31 浏览: 14
以下是计算1-100以内素数的Python代码:
```python
# 循环遍历1-100每个数字
for num in range(1, 101):
# 判断是否为素数
if num > 1:
for i in range(2, int(num/2)+1):
if (num % i) == 0:
break
else:
print(num)
```
输出结果:
```
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
```
相关问题
计算100以内最大素数python代码
以下是Python代码,用于计算100以内最大的素数:
```python
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
max_prime = 2
for num in range(2, 101):
if is_prime(num):
max_prime = num
print(max_prime)
```
输出结果为:
```
97
```
代码写出并行计算求0-100000以内素数的个数
以下是用python写的可并行计算求0-100000以内素数个数的代码:
```python
import multiprocessing
def is_prime(n):
if n <= 1:
return False
if 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
def count_primes(start, end):
count = 0
for i in range(start, end):
if is_prime(i):
count += 1
return count
if __name__ == "__main__":
num_processes = multiprocessing.cpu_count()
pool = multiprocessing.Pool(num_processes)
chunk_size = 10000
ranges = [(i * chunk_size + 1, (i + 1) * chunk_size) for i in range(10)]
results = [pool.apply_async(count_primes, args=(start, end)) for start, end in ranges]
count = sum(result.get() for result in results)
print(f"There are {count} prime numbers between 0 and 100000.")
```
这个程序首先定义了一个 `is_prime()` 函数来检查一个数是否为素数。其次,定义了另一个函数 `count_primes(start, end)` ,它会从 `start` 开始,遍历到 `end - 1` ,并计算到这之间的素数个数。最后,程序使用 `multiprocessing.Pool` 模块来创建多进程来并行计算素数个数,每个进程负责处理一小段范围内的数字。最后,将每个进程的结果相加得到该区间内的素数个数。这个程序会输出以下结果:
```
There are 9592 prime numbers between 0 and 100000.
```
这个程序使用了 Python 的内置 multiprocessing 模块来实现并行计算,但是注意:该程序只是一个参考,实际上应该根据具体的应用场景来决定应该如何进行并行计算。