列出素数Python
时间: 2024-11-02 18:04:09 浏览: 16
在 Python 中,你可以使用多种方法来生成并列举素数。这里是一种常见的基于埃拉托斯特尼筛法(Sieve of Eratosthenes)的简单实现:
```python
def sieve_of_eratosthenes(n):
primes = [True] * (n+1)
primes[0], primes[1] = False, False
p = 2
while p**2 <= n:
if primes[p]:
for i in range(p**2, n+1, p):
primes[i] = False
p += 1
return [i for i, is_prime in enumerate(primes) if is_prime]
# 输出前100个素数
print(sieve_of_eratosthenes(100))
```
这个函数首先创建一个布尔列表 `primes`,所有元素初始化为 `True`。然后从第一个质数(2)开始,将它的倍数标记为非素数。接着检查下一个未被标记的数,继续这个过程直到平方大于给定范围 `n`。最后返回所有位置为 `True` 的索引对应的数字即为素数。
相关问题
python列出1~100所有素数
以下是 Python 代码,用于列出 1 到 100 中的所有素数:
```python
# 定义一个函数,判断一个数是否为素数
def is_prime(num):
# 如果该数小于等于 1,它不是素数
if num <= 1:
return False
# 如果该数等于 2 或 3,它是素数
elif num <= 3:
return True
# 如果该数能被 2 整除,它不是素数
elif num % 2 == 0:
return False
i = 3
# i 从 3 递增到 num 的平方根
while i <= num**0.5:
# 如果该数能被 i 整除,它不是素数
if num % i == 0:
return False
i += 2
# 如果该数不能被 2 或 3 整除,且不能被 i 整除,它是素数
return True
# 列出 1 到 100 中的所有素数
for i in range(1, 101):
if is_prime(i):
print(i, end=" ")
```
输出:
```
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
```
用python写一个用for列出100以内所有素数
可以使用以下代码实现:
```python
for num in range(2, 101):
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
```
这段代码使用两个嵌套的for循环,分别遍历2到100的所有数字,并且对于每个数字,再用一个for循环从2开始到该数字本身进行遍历,判断该数字是否为素数。如果该数字可以被2到该数字本身-1之间的任何一个数整除(即不是素数),则退出内层循环;否则,则说明该数字是素数,输出该数字。
阅读全文