Ce message et ce qu'il contient sont distribués sous GPL.
Qlq'un peut me dire s'il y'a qlque chose de faux ou d'optimisable la dedans svp ?
J'ai vu en cours l'algo d'Euclide pour calculer les pgcd (entre des polynomes mais bon "il y'a une analogie avec ce qui se passe ds N" comme dirait mon prof).
Seulement on a rien vu pour calculer le ppcm. Alors voila (la preuve est de moi => peut-être brouillon et sans doute boiteuse) :
Soient A,B € N*
Soient u,a,b € N* u = pgcd(A,B), A = a*u , B = b*u
A*B = a*b*u² => A*B/pgcd(A,B) = a*b*u
(1) A|a*b*u
(2) B|a*b*u
Soit k € N* A|k et B|k :
A|k => a|k et u|k }
} => a|k, b|k, u|k => (3) a*b*u|k
B|k => b|k et u|k }
(1),(2),(3) => a*b*u = ppcm(A,B)
Donc A*B/pgcd(A,B) = ppcm(A,B)
Procedure de calcul du pgcd en asm 8086 (désolé je parle ce que je connais le mieux (le moins mal en fait). Je pense que le "portage" n'est pas bien compliqué)
;In ax=A bx=B (A>B svp)
;Out ax=pgcd(A,B)
;sauvegarde eventuelle de registres...
pgcd
xor dx,dx
div bx
mov ax,bx
mov bx,dx
cmp dx,0
jne pgcd
;restauration des registres...
ret
Avec ça, l'écriture de la routine ppcm est franchement triviale.
Merci à ceux qui prendront la peine de se pencher la dessus et encore plus à ceux qui auront des remarques constructives et/ou pertinentes.