输入正整数,输出不大于该数的所有素数,用Python来写
时间: 2024-11-29 15:32:55 浏览: 13
Python例题(一) 输入一个正整数判断是不是素数
在Python中,我们可以使用Sieve of Eratosthenes算法来找出所有小于或等于给定正整数n的素数。这是一个古老且高效的筛法,可以逐个排除非素数。以下是相应的代码示例:
```python
def sieve_of_eratosthenes(n):
primes = [True] * (n + 1) # 初始化一个布尔数组,假设所有数字都是质数
p = 2
while p * p <= n:
# 如果primes[p]还未标记为非质数,则它是素数
if primes[p]:
for i in range(p * p, n + 1, p): # 将p的倍数标记为非素数
primes[i] = False
p += 1
# 输出所有素数
prime_numbers = [i for i, is_prime in enumerate(primes) if is_prime]
return prime_numbers
# 示例
num = int(input("请输入一个正整数: "))
result = sieve_of_eratosthenes(num)
print(f"不大于 {num} 的所有素数是:{result}")
```
当你运行这段代码并输入一个正整数时,它将返回小于或等于该数的所有素数。
阅读全文