1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| from math import sqrt
from array import array
import psyco
psyco.full()
def isprime(n):
if n==1:
return False
else:
if n<4:
return True
elif n%2==0:
return False
elif n<9:
return True
elif n%3==0:
return False
else:
r=int(sqrt(n))
f=5
while f<=r:
if n%f==0:
return False
break
elif n%(f+2)==0:
return False
break
else:
f+=6
return True
tableau=array('i')
c=0
i=2
while c<=10000:
if isprime(i):
tableau.insert(c+1,i)
c+=1
i+=1
facto3=[[0,0,0,-1,0,-1,1,0,0,0],
[1,1,-1,0,0,1,-1,0,0,0],
[0,-1,0,0,0,0,-1,1,0,0],
[-1,0,0,0,0,0,0,-1,1,0],
[0,-1,0,0,-1,0,0,0,0,1],
[0,0,0,1,1,0,0,0,0,-1],
[0,0,1,0,0,0,0,1,-1,0],
[0,0,0,1,1,0,0,-1,0,0],
[0,0,0,0,0,0,-1,0,0,0],
[0,0,0,0,1,-1,0,0,0,0],
[0,0,0,0,-1,1,0,0,0,0],
[-1,1,1,0,0,0,0,0,0,0],
[0,0,0,-1,0,0,0,0,0,0],
[0,0,1,0,1,0,0,0,0,0]]
var1=[1,0,0,0,0,0,0,0,0,0]
print var1
c=2
k=0
cont=0
while k<=100:
cont+=1
for i in range(0,14,1):
f1=[m+n for m,n in zip(var1,facto3[i])]
if min(f1)>=0:
var1=f1
if var1[1:10].count(0)==9 and var1[0]==tableau[k]:
print str(cont) + ' : ' + str(var1[0])
k+=1
break |
Partager