The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be:
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
Let us list the factors of the first seven triangle numbers:
1: 1 3: 1,3 6: 1,2,3,6 10: 1,2,5,10 15: 1,3,5,15 21: 1,3,7,21 28: 1,2,4,7,14,28
We can see that 28 is the first triangle number to have over five divisors.
What is the value of the first triangle number to have over five hundred divisors?
I know this question has been asked here many times regarding long run times (my problem) but I don't understand the explanations so here is my take;
def euler_12(num):
i = 0
for n in range(1,num):
list= []
for j in range(1, n**2):
if (n+i) % j == 0:
list.append(j)
if len(list) == 500:
print(n+i)
break
i = i + n
euler_12(num)
I understand this is probably a very poor way to do it, and it also takes forever to run, so any comments are highly appreciated.
NameError: name 'num' is not defined
on the last line. \$\endgroup\$num
to the num you want. \$\endgroup\$num
the program finishes without printing a result and for largernum
the program hangs up without printing a result. \$\endgroup\$