使用嵌套循环查找列表中的素数

2024-05-19 10:28:12 发布

您现在位置:Python中文网/ 问答频道 /正文

编程新手。我有下面的一段代码,我被困在试图找出如何打印出名单(赔率)的素数在给定的名单。请帮助我们找到前进的道路。你知道吗

divisible = 0
dividers = []
odds = [1, 3, 5, 7, 9, 11, 13, 15, 17] #list to check for primes

for divider in range(2, dividers):
    for i in odds:
         if i % divider == 0:
           dividers.append(divider)
           divisible += 1

divisible == 0:
    print(odds)

Tags: to代码infor编程素数list名单
2条回答

for divider in range(2, dividers):此表达式无效。dividers的类型是list而不是int。你想用这些代码做什么?你知道吗

如果您试图找出给定列表中哪些数字是素数,则应按以下方式更改代码:

is_prime = lambda number: all(number % i != 0 for i in range(2, number))

random_numbers = [11, 18, 19, 22, 6, 3, 8]

prime_numbers = [i for i in random_numbers if is_prime(i)]

print(prime_numbers)

我们应该得到如下输出:

[11, 19, 3]

这是我的尝试,所有素数的输出都达到一个上限。 为了满足你的要求,你只需要在你的赔率列表中使上界成为最大的数字。你知道吗

import math

upper_bound = 100 #You would make this 17 to find all the primes in your example list, for instance.
odds =[]
for i in range(upper_bound):
    prime = True
    string =''
    for j in range(2,math.floor(math.sqrt(i))+1):
        if i%j==0 and j>2 :
            string = f"Some factors other than 1 and n are: {i/j} and {i/(i/j)}"
            prime = False
            break

    if i%2!=0 and prime:
        odds.append(i)


    print(i, "Primality is: ", prime, "|", string)

print(odds)

enter image description here

以下是高达100000的算法结果: enter image description here

相关问题 更多 >

    热门问题