Cod sursa(job #936326)

Utilizator iacobvlad.ionutIacob Vlad Ionut iacobvlad.ionut Data 6 aprilie 2013 18:43:36
Problema Algoritmul lui Euclid Scor 30
Compilator fpc Status done
Runda Arhiva educationala Marime 1.08 kb
program cmmdc;
type numere=record
      x,y,z:longint;
      end;
     sir=array[1..10000] of numere;

var s:sir;
    T,i:longint;
    f,g:text;
    function divizor(a,b:longint):longint;
    var r,divz:longint;
        divi:boolean;
    begin
    if a>b then r:=b
           else r:=a;
    divi:=false;
     repeat
     if (a mod r=0) and (b mod r=0) then begin divi:=true;
                                           divz:=r;
                                           end
                                     else r:=r-1;
                                     until divi=true;

                             divizor:=divz;
                            end;



    begin
    assign(f,'euclid2.in');
    reset(f);
    assign(g,'euclid2.out');
    rewrite(g);

     readln(f,T);
     for i:=1 to T do begin
     read(f,s[i].x,s[i].y);
     if (s[i].x=0) or (s[i].y=0) then s[i].z:=0;
     s[i].z:=divizor(s[i].x,s[i].y);
     end;

     for i:=1 to T do
     if s[i].z=0 then writeln('Eroare 0') else
     writeln(g,s[i].z);
     close(f);
     close(g);
     end.