Bonjour,
Je reviens à vous, de nouveau, pour une demande concernant python.
Je suis très débutant, donc je suis ouvert à toutes suggéstions et remarques.
J'ai développé quelque chose sous python 2.5 en important psyco pour augmenter la vitesse d'exécution mais l'exécution est très lente.
Je crois qu'en allégeant le code, l'exécution peut être axélérée.
Le code est le suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Je définie tout d'abord une fonction isprime qui retourne vrai ou faux selon le nombre est pair ou impair.
Après, j'ai crée un tableau de 10000 valeurs.
Ensuite, j'ai défini une liste (14*10).
A la fin, j'exécute le programme dans la fonction while qui calcule la somme entre deux liste terme par terme et affiche le résultat dès qu'une condition est vérifiée.

Si vous avez plus de questions sur le principe du code, n'hésitez pas.
Merci d'avance.

+++
LabChNe