Playing with Primes
Jump to navigation
Jump to search
Product of Adjacent Primes which are Palindromes
2 * 3 = 6 7 * 11 = 77 17 * 19 = 323 191 * 193 = 36863 1051 * 1061 = 1115111
The Code
#!/usr/bin/env python import sys primes = [] MAX = 100000 #------------------------------------------------------------------------------- def primes_to(N): for i in range(N): factored = False no = i + 2 # print "Number -> %s" % no for divisor in primes: # print "Divisor -> %s" % divisor if divisor: if no % divisor == 0: factored = True if factored: break if not factored: # print "Prime -> %s" % no primes.append(no) #------------------------------------------------------------------------------- def reverse(n): s = "%s" % n l = len(s) r = [] if l > 1: for i in range(l): r.append(s[l-i-1]) rev = ''.join(r) else: rev = s # print "s -> %s" % s # print "r -> %s" % rev return int(rev) #------------------------------------------------------------------------------- primes_to(MAX) for i in range(len(primes)): try: product = primes[i] * primes[i+1] except: continue rev = reverse(product) if rev == product: sys.stderr.write("%5s * %5s = %10s\n" % (primes[i], primes[i+1], product)) sys.stderr.write("^^^^^^^^^^^^^^^^^^^^^^^^^^^\n") sys.stderr.flush() #-------------------------------------------------------------------------------