python质数问题求解

def vava(x):
for i in x:
for j in range(2,i):
if i%j==0 :
x.remove(i)
break
return x
x=[3,4,5,6,7,8,9]
print(vava(x))
为啥这个代码9检测不出来是质数求指点

9怎么是质数呢,9是合数。9不是可以整除3吗,不可能是质数了。

因为你在循环过程中改变了x的长度,导致了循环不完整,改成这样就好了:

def vava(x):
    r = []
    for i in x:
        for j in range(2,i):
            if i%j==0:
                break
        else:
            r.append(i)
    return r

x=[3,4,5,6,7,8,9]
print(vava(x))

理解了的话点击一下采纳谢谢

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632