La décomposition du ppcm s'obtient en fusionnant les décompositions de
u et de v.
Dans le cas d'un facteur premier présent dans des deux décompostions,
p present du fois dans u et dv fois dans v, on retient
d facteurs p, où d est le plus grand des deux nombres du
et dv.
De fait, cette règle vaut encore si p n'est present que, par exemple, dans la
decomposition de u, car on a alors dv = 0 < du.
Avec nos listes ordonnées de facteurs, on est très proche d'une bête
fusion de listes triées.
let rec ppcmf xs ys = match xs,ys with
| [],_ -> ys
| _,[] -> xs
| x::rx, y::ry ->
if x < y then
x::ppcmf rx ys
else if y < x then
y::ppcmf xs ry
else (* x=y *)
x::ppcmf rx ry
;;
On retrouve la structure de la fonction communs de la section précédente.