Cod sursa(job #5664)

Utilizator stoikStoica George Cristian stoik Data 13 ianuarie 2007 18:18:16
Problema Fractii Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.65 kb
var n:longint;
nrf:longint;
f,g:text;
function nrv(x:longint):longint;
var nr,i,d,t,p:longint;
begin
d:=2;
nr:=1;
while x<>1 do
    begin
    t:=0; p:=1;
      while x mod d=0 do
            begin
            inc(t);
            x:=x div d;
            p:=p*d;
            end;
      if t<>0 then
        if t=1 then nr:=nr*(d-1)
        else
            nr:=nr*(p-p div d);
     inc(d);
    end;
nrv:=nr;
end;

procedure solve;
var i:longint;
begin
nrf:=1;
for i:=2 to n do
    nrf:=nrf+2*nrv(i);
writeln(g,nrf);
end;

begin
assign(f,'fractii.in');reset(f);
readln(f,n);
assign(g,'fractii.out');rewrite(g);
solve;
close(g);
end.