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()
#-------------------------------------------------------------------------------