Pagini recente » Cod sursa (job #559241) | Cod sursa (job #1857452) | Cod sursa (job #955458) | Cod sursa (job #1959472) | Cod sursa (job #1199445)
const def=1005000;
modd=9973;
var t,ti:longint;
i:longint;
c:array[0..def+5]of boolean;
prim:array[0..80000]of longint;
nr,sum,p,d,n,h:int64;
procedure ciur();
var i,ii,hh,j,h:longint;
begin
prim[0] := 0;
for i := 2 to def do
c[i] := true;
h := trunc(sqrt(def));
for i := 2 to h do
if c[i] then
begin
hh := def div i;
for j := i to hh do c[i*j] := false;
end;
for i := 1 to def do
if c[i] then
begin
inc(prim[0]); prim[prim[0]] := i;
end;
end;
begin
assign(input,'ssnd.in'); reset(input);
assign(output,'ssnd.out'); rewrite(output);
ciur();
readln(t);
for ti := 1 to t do
begin
readln(n);
nr := 1; sum := 1;
h := trunc(sqrt(n));
i := 0;
while prim[i+1] <= h do
begin
inc(i);
p := 1; d := prim[i];
while n mod d = 0 do
begin
inc(p); d := d * prim[i];
end;
nr := (nr * p)mod modd;
sum := (sum * ((d-1) div (prim[i]-1)))mod modd;
n := (n*prim[i]) div d;
end;
if n <> 1 then
begin
nr := nr * 2; nr := nr mod modd;
sum := sum * ((n*n-1) div (n-1)); sum := sum mod modd;
end;
writeln(nr,' ',sum);
end;
close(input);
close(output);
end.