Cod sursa(job #1207241)
Utilizator | Data | 12 iulie 2014 16:53:36 | |
---|---|---|---|
Problema | Sum | Scor | 85 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 0.48 kb |
program sum;
type
tabel=array [0..1000010] of longint;
var
t:tabel;
i,j:longint;
n,k,x:int64;
f1,f2:text;
begin
assign (f1,'sum.in');
assign (f2,'sum.out');
reset (f1);
rewrite (f2);
readln (f1,n);
for i:=2 to 100010 do t[i]:=i;
for i:=2 to 100010 do begin
if t[i]=i then begin
j:=i-i;
repeat
j:=j+i;
t[j]:=t[j] div i;
t[j]:=t[j]*(i-1);
until j>=100010;
end;
end;
for i:=1 to n do begin
readln (f1,x);
writeln (f2,2*x*t[x]);
end;
close (f1);
close (f2);
end.