Cod sursa(job #184160)
Utilizator | Data | 23 aprilie 2008 11:17:08 | |
---|---|---|---|
Problema | Fractii | Scor | 100 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 0.45 kb |
var phi:array[1..1000000] of longint;
f,g:text;
i,j,n:longint;
sum:int64;
begin
assign(f,'fractii.in'); reset(f);
assign(g,'fractii.out'); rewrite(g);
read(f,n);
for i:=1 to n do
phi[i]:=i;
for i:=2 to n do
if phi[i]=i then begin
j:=i;
while (j<=n) do begin
phi[j]:=(phi[j] div i)*(i-1);
inc(j,i);
end;
end;
sum:=1;
for i:=2 to n do
sum:=sum+phi[i] shl 1;
writeln(g,sum);
close(f); close(g);
end.