gpt4 book ai didi

python - Python 中奇怪的循环行为

转载 作者:太空宇宙 更新时间:2023-11-04 08:16:45 24 4
gpt4 key购买 nike

代码:

total = 0

for number in xrange(10000):
divisors = 0
divisors2 = 0

for dividend in xrange(1, number/2):
if number % dividend == 0:
divisors = divisors + dividend

for dividend2 in xrange(1, divisors/2):
if divisors % dividend2 == 0:
divisors2 = divisors2 + dividend2

if number == divisors2:
total = total + number + divisors

print total

代码应该生成低于 10,000 的友好数字(即小于自身的除数总数等于另一个除数总数等于原始数的数字,请参阅 Project Euler, problem 21 )并在找到它们时添加它们。它产生 48,这太低了。

程序运行速度比我预期的要快得多:我正在运行大量数字,我知道这不是获得正确除数的快速方法,所以我怀疑有什么问题结束循环,要么是 Python 意外停止,要么是循环运行无序。如果我在下一个循环开始之前发出打印除数的命令,它将永远持续下去,并且倾向于打印相同数字的长行。这里肯定发生了一些奇怪的事情。我用谷歌搜索“奇怪的循环行为”,并在这里搜索,但无济于事。我也检查了[这里]。 2

这是怎么回事,我应该怎么做?

提前谢谢你。

最佳答案

这里有几个问题:

应该是

total = total + number

而且,range(1,x) 只运行到 x-1。所以,你需要指定 range(1, n/2 + 1)

关于python - Python 中奇怪的循环行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13094829/

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