3、输入一个大于2的正整数,找出比它小的所有素数(若它本身也为素数则包括它自己)并放到列表中,然后5个一行输出。提示:素数的判断方法可使用因子个数判断,用python实现
时间: 2024-10-08 16:17:21 浏览: 30
基于jupyter notebook的python编程—–使用列表实现筛选法求素数(输入一个大于 2 的自然数,然后输出小于该数字的所有素数组成的列表)
5星 · 资源好评率100%
为了找出小于给定正整数的所有素数,并将它们按照每行5个的方式输出,我们可以编写一个Python程序利用 Sieve of Eratosthenes 算法来查找素数。以下是相应的代码实现:
```python
def sieve_of_eratosthenes(n):
primes = [True] * (n + 1)
p = 2
while p * p <= n:
# 如果p是素数,则将其倍数标记为非素数
if primes[p]:
for i in range(p * p, n + 1, p):
primes[i] = False
p += 1
# 创建一个列表只包含真正的素数
prime_list = [i for i in range(2, n) if primes[i]]
return prime_list
def print_primes_in_groups(prime_list, group_size=5):
# 每五个素数分一组打印
for i in range(0, len(prime_list), group_size):
print(prime_list[i:i+group_size])
# 输入示例
num = int(input("请输入一个大于2的正整数: "))
primes_below_num = sieve_of_eratosthenes(num - 1)
print_primes_in_groups(primes_below_num)
阅读全文