Daniele Fucini 6b29655330
Add more solutions
Added solutions for problems 21, 22, 23, 24 and 25 both in C and
in python
2019-09-20 11:12:51 +02:00

52 lines
1015 B
Python

#!/usr/bin/python3
import math
from timeit import default_timer
def is_abundant(n):
limit = math.floor(math.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_ > n
def main():
start = default_timer()
ab_nums = [False] * 28124
for i in range(12, 28124):
ab_nums[i] = is_abundant(i)
sums = [False] * 28124
for i in range(1, 28123):
if ab_nums[i]:
for j in range(i, 28123):
if ab_nums[j]:
sum_ = i + j
if sum_ <= 28123:
sums[sum_] = True
sum_ = 0
for i in range(1, 28124):
if not sums[i]:
sum_ = sum_ + i
end = default_timer()
print('Project Euler, Problem 23')
print('Answer: {}'.format(sum_))
print('Elapsed time: {:.9f} seconds'.format(end - start))
if __name__ == '__main__':
main()