# It can be seen that the number, 125874, and its double, 251748, contain exactly the same digits, # but in a different order. # # Find the smallest positive integer, x, such that 2x, 3x, 4x, 5x, and 6x, contain the same digits. from tools import is_permutation for i in range(1, 10000000): if is_permutation(str(i), str(i*2)): if is_permutation(str(i), str(i*3)): if is_permutation(str(i), str(i*4)): if is_permutation(str(i), str(i*5)): if is_permutation(str(i), str(i*6)): print i break
from tools import get_primes from tools import is_permutation import datetime a = [] n = 9999 ts = datetime.datetime.now() list_of_primes = [prime for prime in get_primes(n) if prime > 999] set_of_primes = set(p for p in list_of_primes) #print "\n".join(str(p) for p in list_of_primes) print datetime.datetime.now() - ts ts = datetime.datetime.now() for p1p in range(len(list_of_primes)): p1 = list_of_primes[p1p] for p2p in range(p1p+1, len(list_of_primes)): p2 = list_of_primes[p2p] p3 = (p2+(p2-p1)) if p3 in set_of_primes: #print "p1 " + str(p1) + " p2 " + str(p2) + " (p2+(p2-p1)) " + str(p2+(p2-p1)) if is_permutation(str(p1), str(p2)) and is_permutation(str(p2), str(p3)): print str(p1) +" "+ str(p2) +" "+ str(p3) print datetime.datetime.now() - ts