Pagini recente » Cod sursa (job #2652795) | Cod sursa (job #2939767) | Cod sursa (job #2789160) | Cod sursa (job #2815523) | Cod sursa (job #494132)
Cod sursa(job #494132)
#include <cstdio>
const int r = 9973;
const int N = 1<<20;
bool c[N];
int pr[N],np;
void ciur()
{
int i,j;
for(i=2 ; i*i<N ; ++i)
if(!c[i])
for(j=i*i ; j<N ; j+=i)
c[j] = true;
for(i=2 ; i<N ; ++i)
if(!c[i])
pr[++np] = i;
}
void calcul(long long n)
{
int i,pow,nr = 1;
long long s = 1,p;
for(i=1 ; (long long)pr[i]*pr[i] <= n ; ++i)
{
for(p=1,pow=0 ; n%pr[i]==0 ; n/=pr[i])
{
p *= pr[i];
++pow;
}
s *= (long long)(p*pr[i] - 1) / (pr[i] - 1);
s %= r;
nr *= (pow + 1);
}
if(n != 1)
{
s *= n + 1;
nr <<= 1;
}
s %= r;
printf("%d %d\n",nr,(int)s);
}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
int t;
ciur();
long long n;
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
calcul(n);
}
return 0;
}