2019-09-22 10:33:18 +02:00

41 lines
740 B
Python

#!/usr/bin/python3
from math import floor, sqrt
from timeit import default_timer
def sum_of_divisors(n):
limit = floor(sqrt(n)) + 1
sum_ = 1
for i in range(2, limit):
if n % i == 0:
sum_ = sum_ + i
if n != i * i:
sum_ = sum_ + n // i
return sum_
def main():
start = default_timer()
sum_ = 0
for i in range(2, 10000):
n = sum_of_divisors(i)
if i != n and sum_of_divisors(n) == i:
sum_ = sum_ + i + n
sum_ = sum_ // 2
end = default_timer()
print('Project Euler, Problem 21')
print('Answer: {}'.format(sum_))
print('Elapsed time: {:.9f} seconds'.format(end - start))
if __name__ == '__main__':
main()