【问题标题】:Finding all the prime numbers in a list in Python在 Python 中查找列表中的所有质数
【发布时间】:2022-11-25 09:21:56
【问题描述】:

我想遍历一个列表并找到所有素数

arr = [1,2,3]

for i in range(len(arr)):
 if arr[i] > 1:
        for j in range(2, int(arr[i]/2)+1):
            if (arr[i] % j) == 0:
                print(arr[i], "is not prime")
            else:
                print(arr[i], "is prime")
  else:
        print(arr[i], "is not prime")

这只会打印出“1 不是质数”。我猜它与 for 循环的范围(len())有关。

【问题讨论】:

    标签: python list iteration range primes


    【解决方案1】:
    arr = list(range(20))
    
    def is_prime(n):
        if n < 2:
            return False
        for i in range(2, int(n**0.5)+1):
            if n % i == 0:
                return False
        return True
    
    def find_primes(array):
        return list(filter(is_prime, array))
    
    print(find_primes(arr))
    

    回报:[2, 3, 5, 7, 11, 13, 17, 19]

    【讨论】:

    • 这个答案如何帮助 OP 了解他们的代码有什么问题?
    猜你喜欢
    • 2017-08-10
    • 2019-06-20
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多