PPCM
par RAYANE HAMADOUCHE, program ppcm;
var a,b,i,q,k,vq,n:integer;
begin
writeln('donner deux nombres entiers);
readln(a,b);
if a>b then n:=a
else n:=b;
vq:=1;
q:=1;
k:=0;
for i:=2 to (n div 2) do {pour gagner des iterations iterations}
begin
if a mod i=0 then
begin
q:=i;
a:=a div i;
while a mod i=0 do {l'idee c'est de faire la meme operation pour le meme i, autrement dit on peut y avoir le quotient de 'a' est aussi divisible sur le meme i}
begin
if a mod i =0 then
begin
a:=a div i;
q:=q*i;
end;
end;
end;
if b mod i =0 then {c'est la meme chose que a}
begin
k:=i;
b:=b div i;
while b mod i=0 do
begin
if b mod i=0 then
begin
b:=b div i;
k:=k*i;
end;
end;
end;
if q>=k then vq:=q*vq
else vq:=k*vq;
q:=1; {on doit reinitialiser le 'q' et le 'k' sinon si a mod i<>0 et b mod i<>0 , il va multiplier vq par k ou q}
k:=1;
end;
writeln('ppcm= ',vq);
end.
Re: PPCM
par Ahror BELAID, C'est bien. Par contre, il y a des répétitions et on peut le coder avec beaucoup moins d'instruction.
Y a t il un volontaire pour publier une version améliorée et moins longue ?
Re: PPCM
par TOUFIK AZZI, je pense c'est comme ca
program ppcm;
uses crt;
var x,y,z,ppcm:Integer;
begin
clrscr;
Writeln('taper deux nombre positif :');
ReadLn(x,y);
if x>y then
begin
z:=x;
x:=y;
y:=z
end;
ppcm:=x;
while (ppcm mod y<>0) do
ppcm:=ppcm+x;
WriteLn('ppcm =',ppcm);
end.