编写程序,输入一个大于2 的自然数,然后输出小于该数字的所有素数组成的列表。 要求采用两种方法求解。
时间: 2023-11-18 11:21:03 浏览: 40
方法一:
def prime_list(n):
"""
返回小于n的所有素数的列表
"""
primes = [True] * n
for i in range(2, int(n ** 0.5) + 1):
if primes[i]:
for j in range(i ** 2, n, i):
primes[j] = False
return [i for i in range(2, n) if primes[i]]
n = int(input("请输入一个大于2的自然数:"))
if n <= 2:
print("输入的数字不符合要求!")
else:
print("小于", n, "的素数有:")
print(prime_list(n))
方法二:
def is_prime(n):
"""
判断n是否为素数
"""
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
n = int(input("请输入一个大于2的自然数:"))
if n <= 2:
print("输入的数字不符合要求!")
else:
print("小于", n, "的素数有:")
primes = []
for i in range(2, n):
if is_prime(i):
primes.append(i)
print(primes)
阅读全文