微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么此列表不显示我,素数

如何解决为什么此列表不显示我,素数

我正在使用列表,正在制作一个数字列表,然后仅将此列表的质数添加到另一个列表中,一切正常,直到我到达要确认的代码部分为止这个数字是素数,如果没有丢失,这不是我的代码

List = []
Primes = []
x = 0
for i in range(0,6):
    List.append(int(input()))

flag = False
for e in List:
    print(e)
    for div in range(2,e):
        if e%div == 0:
            flag = True
    if flag == False:
        Primes.append(e)
        
        
print(List)
print(Primes)

我得到这个输出

[1,42,5,8,7,56,2,34]
[]

解决方法

这似乎可行:

List = []
Primes = []
x = 0
for i in range(0,6):
    List.append(int(input()))


for e in List:
    flag = False
    #print(e)
    if e == 1:
      print("1 is neither prime nor composite")
    else:
      for div in range(2,e):
         if e%div == 0:
            flag = True
      if flag == False:
         Primes.append(e)
        
        
print(List)
print(Primes)

一个问题是,每次测试后都没有将flag设置为False

还请注意,大多数人认为1不是素数也不是合成数,所以我也补充说

,

这将为您提供清单的素数:

from math import sqrt
from itertools import count,islice

l = range(6)

def is_prime(n):
    return n > 1 and all(n % i for i in islice(count(2),int(sqrt(n)-1)))

primes = [i for i in l if is_prime(i)]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。