voila jviens de faire ce code pour déterminer le plus petit commun multiple de 2 nombres
ca semble fonctionner pour plusieurs cas, mais ca ne fonctionne pas si je passe 42 et 30 par exemple, ca semble tourner en boucle
pourtant ca devrait donner 210 assez rapidement, et je vois pas trop pourquoi ca fonctionne pas
Code :
- (define (ppcm n1 n2)
- (define (iter x y)
- (cond ((= x y) x)
- ((> x y) (iter x (+ y y)))
- ((< x y) (iter (+ x x) y))))
- (cond ((= n1 0) "impossible" )
- ((= n2 0) "impossible" )
- ((< n1 0) (ppcm (- n1) n2))
- ((< n2 0) (ppcm n1 (- n2)))
- (else
- (iter n1 n2))))
|