Pagini recente » Monitorul de evaluare | Cod sursa (job #2841485) | Cod sursa (job #2040256) | Cod sursa (job #1632444) | Cod sursa (job #1199440)
const def=1005000;
modd=9973;
var t,ti:longint;
n,i,h:longint;
c:array[0..def+5]of boolean;
prim:array[0..80000]of longint;
nr,sum,p,d: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 := 0; d := prim[i];
while n mod prim[i] = 0 do
begin
inc(p); d := d * prim[i];
n := n div prim[i];
end;
//nr := (nr * (p+1))mod modd;
//sum := (sum * (((d-1) div (prim[i]-1)) mod modd))mod modd;
end;
if n <> 1 then
begin
//nr := nr * 2; nr := nr mod modd;
//sum := sum * (((n*n-1) div (n-1))mod modd); sum := sum mod modd;
end;
writeln(nr,' ',sum);
end;
close(input);
close(output);
end.