📜  Python程序在一个区间内打印所有素数

📅  最后修改于: 2022-05-13 01:55:36.797000             🧑  作者: Mango

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 筛优化上述解决方案。有关详细信息,请参阅打印范围内的质数。