Cod sursa(job #26067)
Utilizator | Trimbitas 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.