Pagini recente » Statistici Peteleu Denis Andrei (XIIs12s) | Cod sursa (job #3287445) | Profil Acica | Istoria paginii onis-2015/runda-3 | Cod sursa (job #406043)
Cod sursa(job #406043)
#include <cstdio>
#define file_in "ssnd.in"
#define file_out "ssnd.out"
#define Mod 9973
int T,N,i,inv[1000000],e,d,nrd,suma,p;
int prim(int X)
{
if (X==1)
return 0;
if (X==2)
return 1;
int dd=0;
for (int i=1;i<=X;++i)
if (X%i==0)
dd++;
if (dd==2)
return 1;
return 0;
}
int my_pow(int a,int b)
{
int t;
if (!b)
return 1;
t=my_pow(a,b>>1);
t=(t*t)%Mod;
if (b&1)
t=(t*a)%Mod;
return t;
}
int main()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d", &T);
for (i=1;i<Mod;++i)
inv[i]=my_pow(i,Mod-2);
while(T--)
{
scanf("%d", &N);
if (prim(N))
{
printf("2 %d\n", N+1);
}
else
{
suma=1;
nrd=1;
e=0;
while(N%2==0)
{
N/=2;
e++;
}
if (e>0)
{
nrd=(e+1);
p=1;
for (i=1;i<=e+1;++i)
p*=2;
p--;
p=(p*inv[1])%Mod;
suma=p;
}
d=3;
while(N!=1)
{
e=0;
while(N%d==0)
{
N/=d;
e++;
}
if (e>0)
{
nrd*=(e+1);
p=1;
for (i=1;i<=e+1;++i)
p*=d;
p--;
for (i=1;i<d;++i)
p=(p*inv[i])%Mod;
suma*=p;
}
d+=2;
}
printf("%d %d\n", nrd,suma);
}
}
fclose(stdin);
fclose(stdout);
return 0;
}