-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproblem12.py
More file actions
39 lines (33 loc) · 829 Bytes
/
problem12.py
File metadata and controls
39 lines (33 loc) · 829 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
def divisorQty( num ):
count = 0
for i in range(1, num+1):
if num % i == 0:
count = count + 1
return count
def divisorQty2( num ):
divisor = 2
divisors = {}
while num != 1:
while (num % divisor) != 0 and (divisor <= num):
divisor = divisor + 1
if (num % divisor) == 0:
num = num / divisor
if not divisors.get(divisor):
divisors[divisor] = 1
else:
divisors[divisor] = divisors[divisor] + 1
result = 1
for i in divisors.values():
result = result * (i+1)
return result
def triangleNumber( n ):
return n*(n+1)/2 #12 x 13 /2 has divisorQty(12)-1.
def problem12( divisors ):
num = 1
while divisors >= divisorQty2( triangleNumber( num ) ):
num = num + 1
return triangleNumber( num )
answer = problem12(500)
print answer
#print divisorQty2( answer )
#print divisorQty2( 5000000 )