Bonjour,

J'ai fait un programme demandant à l'utilisateur d'entrer un nombre et le programme affiche les nombres parfaits jusqu'au nombre saisi.
Cependant, le programme ci dessous fonctionne mais plus les valeurs deviennent grandes plus il long à afficher les nombres et à partir d'un certain seuil il me met un message d'erreur "Memory Error"

Comment corriger ca ?

Merci


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
nombre=int(input("nombre Max"))
liste=[]
liste2=[]
T=0
aff=0
for var in range(1,nombre+1,1):
    liste.append(var)
for var in range(1,nombre+1,1):
    liste2.append(var)
liste = liste * nombre
liste.sort()
liste2 = liste2 * nombre
 
for Z in range(nombre,nombre**2,1):
    aff=aff+1
    if (liste[Z])>(liste2[Z]) and (liste[Z])%(liste2[Z])==0:
        T=((liste2[Z])+T)
    if aff==nombre:
        aff=0
        if T==(liste[Z]):
            print(T)
        T= 0