30 lines
931 B
Python
30 lines
931 B
Python
#!/usr/bin/python3
|
|
|
|
# A permutation is an ordered arrangement of objects. For example, 3124 is one possible permutation of the digits 1, 2, 3 and 4.
|
|
# If all of the permutations are listed numerically or alphabetically, we call it lexicographic order. The lexicographic permutations of 0, 1 and 2 are:
|
|
#
|
|
# 012 021 102 120 201 210
|
|
#
|
|
# What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9?
|
|
|
|
from itertools import permutations
|
|
|
|
from timeit import default_timer
|
|
|
|
def main():
|
|
start = default_timer()
|
|
|
|
# Generate all the permutations in lexicographic order and get the millionth one.
|
|
perm = list(permutations('0123456789'))
|
|
res = int(''.join(map(str, perm[999999])))
|
|
|
|
end = default_timer()
|
|
|
|
print('Project Euler, Problem 24')
|
|
print('Answer: {}'.format(res))
|
|
|
|
print('Elapsed time: {:.9f} seconds'.format(end - start))
|
|
|
|
if __name__ == '__main__':
|
|
main()
|