Sagot :
Bonjour,
a)
pg_div(25, 15) => a = 25 et b = 15
d = 1
Tant que d est différent de 0:
d = 1 #On entre dans la boucle
d = a - b = 25 - 15 = 10
Si d < b: 10 < 15: Vrai, on entre dans le bloc
a = b = 15
b = d = 10
d = 10 #On reste dans la boucle
d = a - b = 15 - 10 = 5
Si 5 < 10: Vrai
a = b = 10
b = d = 5
d = 5 #On reste dans la boucle
d = a - b = 10 - 5 = 5
Si 5 < 5: Faux, on rentre dans le "Esle" = Sinon
a = d = 5
d = 5 #On reste dans la boucle
d = a - b = 5 - 5 = 0
Si 0 < 5: Vrai
a = b = 5
b = d = 0
Fin du Tant que car d = 0
Retourne la valeur de a donc 5
pg_div(25, 15) renvoie 5.
b)
De la même façon, on trouve pg_div(48, 32) renvoie 16.
En fait, pg_div(a, b) renvoie le plus grand diviseur commun entre a et b.
25/15 = (5 x 5) / (5 x 3) = 5/3
48/32 = (16 x 3) / (16 x 2) = 3/2
On obtient les fractions irréductibles.
c)
n = int(input("Numérateur = "))
p = int(inpu("Dénominateur = "))
pg = pg_div(n, p) #On récupère le plus grand diviseur commun.
print("{}/{}".format(n//pg, p//pg)) #On utilise // pour faire des divisions entières.
Bonne journée.