首页 > 解决方案 > 如何在列表中找到素数

问题描述

我想让用户输入一个列表的开始和结束,并让程序找到其中的所有素数并打印它们。现在我的代码如下所示:

def rangeStartEndPrime(v1, v2):
 import math 

 check_prime = (v1,v2+1)
 for num in check_prime:
    is_prime = True
    for i in range(2, int(num**0.5) + 1):
        if (num % i) == 0:
            is_prime = False
 return int(is_prime == True)

number1 = int(input("Please enter start value: "))
number2 = int(input("Please enter end value: "))
range = rangeStartEndPrime(number1, number2)

print(range)

输出:

Please enter start value: 4
Please enter end value: 100
1

标签: python

解决方案


您应该使用外部循环在给定v1和之间的范围内迭代一个数字v2,如果该数字不能被 2 与其平方根之间的任何数字整除,则确定该数字是否为素数,并将该数字添加到列表中:

def rangeStartEndPrime(v1, v2):
    primes = []
    for num in range(v1, v2 + 1):
        for i in range(2, int(num ** 0.5) + 1):
            if num % i == 0:
                break
        else:
            primes.append(num)
    return primes

这样rangeStartEndPrime(5, 11)返回:

[5, 7, 11]

推荐阅读