Pagini recente » Cod sursa (job #296365) | Cod sursa (job #912706) | Cod sursa (job #278383) | Cod sursa (job #525603) | Cod sursa (job #118287)
Cod sursa(job #118287)
var fi,fo:text;
phi,u:array[1..100001] of int64;
n:int64;
procedure scrie(k:qword);
var i,nr:longint;
d:qword;
st:string[15];
c:array[1..15] of byte;
begin
nr:=0;
while (k>0) do
begin
inc(nr);
d:=k div 10;
c[nr]:=k-10*d+48;
k:=d;
end;
for i:=nr downto 1 do
st[nr-i+1]:=chr(c[i]);
st[0]:=chr(nr);
writeln(fo,st);
end;
procedure ciur;
var i,j:longint;
begin
for i:=1 to 100001 do
phi[i]:=i;
{for i:=2 to 100001 do
if u[i]=0 then
begin
j:=2;
dec(v[i]);
while i*j<=100001 do
begin
u[i*j]:=1;
v[i*j]:=v[i*j]-v[i*j] div i;
inc(j);
end;
end;}
for i:=2 to 100001 do
if phi[i]=i then
begin
j:=i;
while j<=100001 do
begin
phi[j]:=phi[j] div i;
phi[j]:=phi[j]*(i-1);
inc(j,i);
end;
end;
end;
var x,sol,t:int64;
i:longint;
begin
assign(fi,'sum.in'); reset(fi);
assign(fo,'sum.out'); rewrite(fo);
ciur;
read(fi,t);
for i:=1 to t do
begin
read(fi,x);
sol:=2*phi[x]*x;
scrie(sol);
end;
close(fi);
close(fo);
end.