Pagini recente » Cod sursa (job #1205479) | Cod sursa (job #2409780) | Cod sursa (job #3245706) | Cod sursa (job #3000432) | Cod sursa (job #465368)
Cod sursa(job #465368)
type vec = string [255] ;
var n,j,i,k,l,y:longint;
sum:int64;
v:array[1..100005] of int64;
f,g:text;
x : vec ;
procedure fisier;
begin
assign(f,'sum.in');
assign(g,'sum.out');
reset(f);
rewrite(g);
end;
function parse ( var x : vec ; var a : longint ) : longint ;
var i , y : longint;
begin
i := a; y := 0;
while (i <= k) do
begin
if ( x[i] >= '0' ) and ( x[i] <= '9' ) then
y := y * 10 + ord(x[i]) - 48
else
begin
if ( i = 255 ) then
begin
a := 1 ; i := 0;
read ( f, x ) ;
k := length ( x ) ;
end ;
inc ( i ) ;
break;
end;
if ( i = 255 ) then
begin
a := 1 ; i := 0;
read ( f, x ) ;
k := length ( x ) ;
end ;
inc ( i ) ;
end;
a := i;
parse := y;
end;
procedure ciur;
begin
for i:=1 to 100005 do
v[i]:=i;
for i:=2 to 100005 do
if ( v[i] = i ) then
begin
j:=i;
while j<=100005 do
begin
v[j]:=v[j] div i * ( i - 1 );
j:=j+i;
end;
end;
end;
procedure citire;
begin
readln(f,n);
end;
procedure suma;
begin
sum:=v[y]*y*2;
end;
procedure scriere;
begin
writeln(g,sum);
end;
procedure main;
begin
for i:=1 to n do
begin
read ( f, x ) ; k := length ( x ) ; l := 1 ;
y := parse ( x, l ) ;
suma;
scriere;
readln ( f ) ;
end;
end;
begin
fisier;
ciur;
citire;
main;
close(f);
close(g);
end.