Cod sursa(job #26067)

Utilizator AymdTrimbitas Viorel Stefan Aymd Data 5 martie 2007 09:02:16
Problema Fractii Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.7 kb
var a:array[1..1000000,1..7]of longint;
    b:array[1..1000000]of byte;
    n,r,i,x,j:longint;
    f,g:text;

begin
assign(f,'fractii.in');
reset(f);
readln(f,n);
r:=1;
for i:=2 to n do begin
   if b[i]=0 then begin
                  x:=2*i;
                  while x<n+1 do begin
                     b[x]:=b[x]+1;
                     a[x,b[x]]:=i;
                     x:=x+i;
                  end;
                  end;
   if b[i]=0 then r:=r+2*(i-1)
             else begin
                  x:=i-1;
                  for j:=1 to b[i] do x:=x-x div a[i,j];
                  r:=r+2*x;
                  end;
end;
assign(g,'fractii.out');
rewrite(g);
write(g,r);
close(g);
end.