69 lines
1.3 KiB
Python
69 lines
1.3 KiB
Python
maxx = 10
|
|
|
|
|
|
def mkp(x):
|
|
P = [2]
|
|
p = [2]
|
|
n = 3
|
|
while n < x:
|
|
for i in p:
|
|
if n % i == 0:
|
|
break
|
|
else:
|
|
P.append(n)
|
|
n += 2
|
|
while n > p[-1] ** 2:
|
|
p.append(P[len(p)])
|
|
return P
|
|
|
|
prime = mkp(100000)
|
|
|
|
def isp(x, lis = prime):
|
|
for i in lis:
|
|
if i ** 2 > x:
|
|
break
|
|
if x % i == 0:
|
|
return False
|
|
return True
|
|
|
|
maxx = 10
|
|
|
|
total = 0
|
|
|
|
for i in xrange(1, 10):
|
|
for j in xrange(1, 10):
|
|
num = ['0'] * maxx
|
|
num[0] = str(i)
|
|
num[-1] = str(j)
|
|
tmp = int(''.join(num))
|
|
if isp(tmp) and (tmp > 10 ** (maxx - 1)):
|
|
#print tmp
|
|
total += tmp
|
|
|
|
for same in xrange(1, 10):
|
|
for new in xrange(10):
|
|
for local in xrange(maxx):
|
|
num = [str(same)] * maxx
|
|
num[local] = str(new)
|
|
tmp = int(''.join(num))
|
|
if isp(tmp) and (tmp > 10 ** (maxx - 1)):
|
|
#print tmp
|
|
total += tmp
|
|
|
|
sp = set([])
|
|
no = set(range(10))
|
|
for special in [2, 8]:
|
|
for new1 in no - set([special]):
|
|
for new2 in no - set([special]):
|
|
for local1 in xrange(maxx):
|
|
for local2 in xrange(maxx):
|
|
num = [str(special)] * maxx
|
|
num[local1] = str(new1)
|
|
num[local2] = str(new2)
|
|
tmp = int(''.join(num))
|
|
if isp(tmp) and (tmp > 10 ** (maxx - 1)):
|
|
sp.add(tmp)
|
|
#print tmp
|
|
|
|
print total + sum(list(sp))
|