Example #1
0
"""
What is the largest n-digit pandigital prime that exists?
"""



from lib import euler
import math

digits = '123456789'

while digits:
  n = digits
  p = 0
  while 1:
    if int(n) > p and euler.is_prime(int(n)):
      p = int(n)
    try:
      n = ''.join(euler.lexicographic_permutation(n))
    except: break
  if p: break
  
  digits = digits[:-1]
  
print p
Example #2
0
"""What is the millionth lexicographic permutation of the digits
0, 1, 2, 3, 4, 5, 6, 7, 8 and 9?"""


from lib import euler

seq = [int(c) for c in '0123456789']

permutations = []

for x in range(10**6 - 1): # -1 because the first is seq
  s = euler.lexicographic_permutation(seq)
  permutations += [s]
  seq = s

print ''.join([str(i) for i in permutations[-1]])