Pagini recente » Cod sursa (job #2989623) | Cod sursa (job #1007753) | Cod sursa (job #223507) | Cod sursa (job #1149891) | Cod sursa (job #222283)
Cod sursa(job #222283)
const max=100000;
var n,x,i,j:longint;
v,a,b:array [1..100010] of longint;
p:array [1..100010] of int64;
begin
assign(input,'sum.in'); reset(input);
assign(output,'sum.out'); rewrite(output);
for i:=2 to trunc(sqrt(max)) do
if v[i]=0 then
for j:=1 to max div i do v[i*j]:=i;
for i:=2 to max do
if v[i]=0 then v[i]:=i;
for i:=2 to max do begin
b[i]:=i;
while b[i] mod v[i]=0 do b[i]:=b[i] div v[i];
a[i]:=i div b[i];
if b[i]=1 then p[i]:=i-(i div v[i])
else p[i]:=p[a[i]]*p[b[i]];
end;
for i:=2 to max do p[i]:=2*p[i]*i;
readln(n);
for i:=1 to n do begin
readln(x);
writeln(p[x]);
end;
close(input); close(output);
end.