Bonsoir à toutes et à tous,

J'ai pour travail de calculer le PGCD de deux nombres entiers à partir de la décomposition de deux entiers.
Je vous mets le code que j'ai fait ci-dessous :

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
def decompose(n):
    T = []
    while n != 1:
        i = 2
        while n%i != 0:
            i = i+1
        if n%i ==0 and premier(i) == True:
            T = T + [i]
            n = n//i
 
    return T
 
def PGCD(n,m):
 
    T = decompose(m)
    T1 = decompose(n)
    Tt = []
    i = 0
    j = 0
    if len(T) > len(T1):
 
        while i < len(T1) and T[i] != "":           
            if T[i] == T1[j]:
                Tt = Tt + T[i]
 
            else:
                i = i+1
            j = j+1
 
 
    if len(T) < len(T1):
        while i < len(T) and T1[i] != "":
            if T[i] == T1[j]:
                Tt = Tt + T[i]
            else:
                i = i+1 
        j = j+1
    print(Tt)
J'ai réussi à faire la première fonction pour pouvoir décomposer un nombre.


Je vous explique ce que j'essaye de faire :
Je veux appeler cette fonction, afin qu'elle puisse me décomposer dans deux différentes listes les entiers "n" et "m".
Ensuite, je compare les deux listes, si il y a similitude, je concatène la valeur d'une des deux listes à une liste vide.
Et enfin, je renvoie la liste qui me montre le PGCD des deux nombres.

Mais je ne comprends pas ma faute.

Merci d'avance pour vos réponses !