Cod sursa(job #265318)

Utilizator diabolikblejusca sabin diabolik Data 23 februarie 2009 19:42:13
Problema Fractii Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.7 kb
//uses timer;
var phi:array[0..500000]of longword;
i,j,k,n:longint;
procedure smart;inline;
var i,j,doi,jum:longint;
    rez:qword;
    k:longword;
begin
rez:=1;jum:=n div 2;
 for i:=2 to jum do phi[i]:=i-1;
 for i:=2 to jum do
  begin
   k:=phi[i];
   doi:=2*i;
   j:=3*i;
    while (j<=jum) do
     begin
      dec(phi[j],k);
      inc(j,doi);
     end;
    while (j<=n) do
     begin
     dec(phi[j],k);
      inc(j,doi);
     end;
  end;
rez:=rez+int64(n-1)*n div 2-int64(jum-1)*jum div 2;
writeln(2*rez-1);
end;
begin
//start;
assign(input,'fractii.in');reset(input);
assign(outpuy,'fractii.out');rewrite(output);
readln(n);
smart;
//scurs;
close(input);
close(output);
end.