Cod sursa(job #133900)

Utilizator vrvpVlad Veigang vrvp Data 9 februarie 2008 22:52:18
Problema Multiplu Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.45 kb
Program multiplu;   
Var f,ff:text;   
    a,b,g,i,l,ll,q:longint;   
    m:integer;
    nr:array[0..20000000] of char;
    r,u:array[0..200000000] of longint;
    h:array[0..200000000] of boolean;
procedure afis(i:longint);   
begin  
 if u[i]=-1 then Write(ff,nr[i])   
            else begin afis(u[i]); Write(ff,nr[i]); end;   
end;   
function cmmdc(a,b:longint):longint;   
var r:longint;   
begin  
 repeat  
  r:=a mod b;   
  a:=b;   
  b:=r;   
 until(r=0);   
 cmmdc:=a;   
end;   
Begin   
  assign(f,'multiplu.in');   
  reset(f);   
  assign(ff,'multiplu.out');   
  rewrite(ff);   
  readln(f,a,b);   
  m:=(a*b) div cmmdc(a,b);   
  r[1]:=1;   
  nr[1]:='1';   
  u[1]:=-1;   
  l:=1;   
  ll:=1;   
  while(1=1) do  
    begin  
     q:=(r[l]*10) mod m;   
     if g=0 then  
       if h[q]=FALSE then  
         begin  
          ll:=ll+1;   
          h[q]:=TRUE;   
          r[ll]:=q;   
          nr[ll]:='0';   
          u[ll]:=l;   
          if r[ll]=0 then break;   
         end;   
     q:=(q+1) mod m;   
     if g=0 then  
       if h[q]=FALSE then  
         begin  
          ll:=ll+1;   
          h[q]:=TRUE;   
          r[ll]:=q;   
          nr[ll]:='1';   
          u[ll]:=l;   
          if r[ll]=0 then break;   
         end;   
     inc(l);   
    end;   
  if m=1 then Writeln(ff,'1')   
         else begin afis(ll); Writeln(ff); end;   
  close(f);   
  close(ff);   
End.