65 lines
1.2 KiB
Python
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()
|