Daniele Fucini f8cce530b5
Add more solutions
Added solutions for problems from 41 to 5, both in C and python
2019-09-22 17:47:09 +02:00

65 lines
1.2 KiB
Python

#!/usr/bin/python3
from itertools import permutations
from timeit import default_timer
def has_property(n):
value = int(n[1]) * 100 + int(n[2]) * 10 + int(n[3])
if value % 2 != 0:
return False
value = int(n[2]) * 100 + int(n[3]) * 10 + int(n[4])
if value % 3 != 0:
return False
value = int(n[3]) * 100 + int(n[4]) * 10 + int(n[5])
if value % 5 != 0:
return False
value = int(n[4]) * 100 + int(n[5]) * 10 + int(n[6])
if value % 7 != 0:
return False
value = int(n[5]) * 100 + int(n[6]) * 10 + int(n[7])
if value % 11 != 0:
return False
value = int(n[6]) * 100 + int(n[7]) * 10 + int(n[8])
if value % 13 != 0:
return False
value = int(n[7]) * 100 + int(n[8]) * 10 + int(n[9])
if value % 17 != 0:
return False
return True
def main():
start = default_timer()
perm = list(permutations('0123456789'))
sum_ = 0
for i in perm:
if has_property(i):
sum_ = sum_ + int(''.join(map(str, i)))
end = default_timer()
print('Project Euler, Problem 43')
print('Answer: {}'.format(sum_))
print('Elapsed time: {:.9f} seconds'.format(end - start))
if __name__ == '__main__':
main()