Pagini recente » Monitorul de evaluare | Profil SliMM | Diferente pentru utilizator/traian_7109 intre reviziile 58 si 60 | Cod sursa (job #1169968)
program sum;
var n,x,i,j:longint;
v:array[1..100000] of longint;
bufin,bufout:array[1..1 shl 16] of char;
ans:int64;
begin
assign(input,'sum.in');
assign(output,'sum.out');
settextbuf(input,bufin);
settextbuf(output,bufout);
reset(input);
rewrite(output);
readln(n);
for i:=1 to 100000 do v[i]:=i-1;
for i:=2 to 100000 do
begin
j:=i+i;
while j<=100000 do
begin
v[j]:=v[j]-v[i];
inc(j,i);
end;
end;
v[1]:=1;
for i:=1 to n do
begin
readln(x);
ans:=2*x*v[x];
writeln(ans);
end;
close(output);
end.