Cod sursa(job #238921)

Utilizator ioalexno1Alexandru Bunget ioalexno1 Data 3 ianuarie 2009 17:39:52
Problema Multiplu Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.07 kb
program alex;
var f:text;
    q,b,x,y,r,m,n,s,p,i,ex1,ex2,k,poz:longint;
    c,a:array[1..10000]of 0..9;
    e:boolean;
begin
assign(f,'multiplu.in');reset(f);
readln(f,q,b);
close(f);
x:=q;
y:=b;
r:=x mod y;
while r<>0 do
      begin
      x:=y;
      y:=r;
      r:=x mod y;
      end;
m:=(q*b) div y;
n:=m;
ex1:=0;
ex2:=0;
while n mod 2=0 do
      begin
      n:=n div 2;
      ex1:=ex1+1;
      end;
while n mod 5=0 do
      begin
      n:=n div 5;
      ex2:=ex2+1;
      end;
assign(f,'multiplu.out');rewrite(f);
if n=1 then begin
            if ex1>ex2 then begin
                            write(f,1);
                            for i:=1 to ex1 do
                                write(f,0);
                            end
                        else begin
                             write(f,1);
                             for i:=1 to ex2 do
                                 write(f,0);
                             end;
             end
        else begin
                                       e:=false;
                                       x:=1;
                                       k:=0;
                                       repeat
                                       x:=x*10;
                                       k:=k+1;
                                       c[k]:=x;
                                       a[k]:=x div m;
                                       x:=x-a[k]*m;
                                       for i:=1 to k-1 do
                                           if c[k]=c[i] then begin
                                                             e:=true;
                                                             poz:=i;
                                                             end;
                                       until e=true;
                                       for i:=1 to k-poz do
                                           write(f,1);
                                       for i:=1 to poz-1 do
                                           write(f,0);
         end;
close(f);
end.