Program CalCPPCM;
Type
enreg = Record
a : Integer;
b : Integer;
ppcm : Integer;
End;
fenreg = file Of enreg;
Var
n : Integer;
f : fenreg;
Procedure saisie(Var n:Integer);
Begin
Repeat
Write('Nombre d"enregistrements: ');
Readln(n);
Until ((n>=2)And(n<=100));
End;
Function ppcm(a,b:Integer) : Integer;
Var
i,p,d,p1,p11 : Integer;
Begin
d := 2;
p := 1;
Repeat
p1 := 0;
p11 := 0;
Repeat
If (a Mod d=0) Then
Begin
a := a Div d;
p1 := p1+1;
End;
Until (a Mod d<>0);
Repeat
If (b Mod d=0) Then
Begin
b := b Div d;
p11 := p11+1;
End;
Until (b Mod d<>0);
If (p11>p1) Then
For i:=1 To p11 Do
p := p*d
Else
For i:=1 To p1 Do
p := p*d;
d := d+1;
Until ((a=1)And(b=1));
ppcm := p;
End;
Procedure remplir(Var f:fenreg; n:Integer);
Var
enr : enreg;
i,a,b : Integer;
Begin
Rewrite(f);
For i:=1 To n Do
Begin
Repeat
Write('A= ');
Readln(a);
Until ((a>0)And(a<1000));
enr.a := a;
Repeat
Write('B= ');
Readln(b);
Until ((b>0)And(b<1000));
enr.b := b;
enr.ppcm := ppcm(a,b);
Write(f,enr);
End;
Close(f);
End;
Procedure affiche( Var f:fenreg);
Var
enr : enreg;
Begin
Reset(f);
While (Not(Eof(f))) Do
Begin
read(f,enr);
Writeln('PPCM(',enr.a,',',enr.b,') = ',enr.ppcm);
End;
Close(f);
End;
Begin
Assign(f,'F_PPCM.dat');
saisie(n);
remplir(f,n);
affiche(f);
End.
Inscription à :
Publier les commentaires (Atom)