【发布时间】:2021-01-07 19:49:27
【问题描述】:
我是编程新手,我喜欢解决这个欧拉问题,我知道这个问题有解决方案,但实际上根本不是问题。
所以,我设法创建了一个用于查找示例的工作函数:33. 三角数。它可以工作,但我无法正确设计我的 while 循环。我想让它像,它从第一个三角形检查它的除数开始,列出它的除数,检查除数的长度,因为问题想要“第一个三角形数的值是多少,有超过 500 个除数?” .但我从来没有设法处理while循环。感谢您的阅读。
nums = [1]
triangles = [1]
divisors = []
def triangularcreator(x):
if x == 1:
return 1
n = 1
sum = 0
while n!=0:
n += 1
nums.append(n)
for i in range(len(nums)):
sum += nums[i]
triangles.append(sum)
sum = 0
if x == len(triangles):
n = 0
return triangles[-1]
counter = 1
while True:
for i in range(1, triangularcreator(counter) + 1):
if triangularcreator(counter) % i == 0:
divisors.append(i)
if len(divisors) == 500:
print(triangularcreator(counter))
break
counter +=1
divisors.clear()
【问题讨论】:
-
为什么最后有一个
divisors.clear()? -
我添加了一个示例,但是结果可能不是很好,您没有 1 个无限循环,而是 2 个 :)
-
我找到了一个最好、最干净和更 Pythonic 的答案,看看
标签: python while-loop triangular