Python程序在一个区间内打印所有素数
给定两个正整数 start 和 end。任务是编写一个Python程序来打印一个区间中的所有素数。
定义:素数是一个大于 1 的自然数,除了 1 和它自身之外没有正除数。前几个素数是 {2, 3, 5, 7, 11, ....}。
解决这个问题的想法是使用 for 循环从头到尾迭代val ,并且对于每个数字,如果它大于 1,则检查它是否除以n 。如果我们找到任何其他除数,则打印该值。
下面是Python的实现:
Python3
# Python program to print all
# prime number in an interval
def prime(x, y):
prime_list = []
for i in range(x, y):
if i == 0 or i == 1:
continue
else:
for j in range(2, int(i/2)+1):
if i % j == 0:
break
else:
prime_list.append(i)
return prime_list
# Driver program
starting_range = 2
ending_range = 7
lst = prime(starting_range, ending_range)
if len(lst) == 0:
print("There are no prime numbers in this range")
else:
print("The prime numbers in this range are: ", lst)
输出:
The prime numbers in this range are: [2,3,5]
时间复杂度: O(N 2 ),其中 N 是范围的大小。
辅助空间: O(N)。
可以使用 Eratosthenes 筛优化上述解决方案。有关详细信息,请参阅打印范围内的质数。