gpt4 book ai didi

求素数的Python程序(3.5)

转载 作者:行者123 更新时间:2023-11-28 22:32:26 25 4
gpt4 key购买 nike

我正在制作一个寻找素数的程序。要求用户提供大于 2 (n) 的数字,然后程序会生成一个从 2 开始到用户数字 (n) 结束的列表。在我的程序中,我应该将一个名为 current 的变量设置为 2,然后循环遍历列表以查找 current 的倍数并将它们删除。在循环结束时,我将 1 添加到 current,程序再次循环执行与之前相同的操作。每次打印该列表。我的程序正常工作(我正在使用数字 10 作为 n 进行测试)当它到达末尾时 10 被保留,即使它应该被删除。请帮忙。

这是我的代码:

while True:
global n
n = int ( input ( "Please enter a number larger than 2. " ) )
if n > 2:
break
else:
print ( "Your number is not larger than 2." )
continue

current = 2
myList = list ( range ( 2, n + 1 ) )
while current < n:
if current == []:
break
for i in reversed ( range ( len( myList )-1 ) ):
if myList[i] % current == 0 and myList[i] != current and ( myList[i] / current ).is_integer(): myList.pop(i)
print ( myList )
current = current + 1

最佳答案

for i in reversed ( range ( len( myList )-1 ) ): 应该是for i in reversed ( range ( len( myList ) ) ):

范围默认不包括最后一个数字:range(5) 给出 0,1,2,3,4

让它在发生变化时只输出一行:

if myList[i] % current == 0 and myList[i] != current and ( myList[i] / current ).is_integer():
myList.pop(i)
print ( myList )

如果在 if 语句中进行打印,那么只有当它发生变化时才会显示新列表。

关于求素数的Python程序(3.5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40920561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com