# https://projecteuler.net/problem=37
# https://pythonhosted.org/eulerlib/eulerlib.html

import eulerlib

def to_decimal_string(n):
    return "{0:d}".format(n)

def truncatable_l (x):
    #print "_l x=",x
    if x not in primes:
        return False
    s=to_decimal_string(x)
    if x>10:
        if truncatable_l (int(s[:-1]))==False:
            return False
    return True

def truncatable_r (x):
    #print "_r x=",x
    if x not in primes:
        return False
    s=to_decimal_string(x)
    if x>10:
        if truncatable_r (int(s[1:]))==False:
            return False
    return True

primes=[]
p=eulerlib.prime_numbers.prime_gen()
m=1000000
while True:
    t=next(p)
    if t>m:
        break
    primes.append (t)

c=0
sm=0
for i in primes:
    if i<10:
        continue
    if truncatable_l(i) and truncatable_r (i):
        c=c+1
        print (c,i)
        sm=sm+i
        if c==11:
            break
print ("sm=", sm)
