s=len(num)
# 删除list中的元素后,list的实际长度变小了,但是循环次数没有减少,依然按照原来list的长度进行遍历,会造成索引溢出。
# 所以删除操作时要倒序循环
for a in range(s-1,-1,-1):
# b是从2到num[a]值减一
for b in range(2,num[a]):
# 余数等于0表示能整除。不是素数
if num[a]%b==0:
del num[a]
break
print(num)
b的循环范围应该是2到num[a],
条件应该是 如果num[a]与任何一个b能整除就要删除,说明不是素数。
if num[a] % b == 0:
del num[a]
请采纳一下,谢谢!
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632