Pagini recente » Cod sursa (job #1838030) | Cod sursa (job #2819014) | Cod sursa (job #1814582) | Cod sursa (job #1016484) | Cod sursa (job #3167994)
#include<cstdio>
#include<iostream>
#include<bitset>
using namespace std;
bitset<500010> p;
int PR[80000],*f;
int t,n,s,N,S,i,k,j;
long long T,*F,P[80000];
void ciur();
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
ciur();
cin>>t;
for(;t;t--)
{
cin>>T;N=1;S=1;
for(F=P,f=PR;*F;F++,f++)
{
if(*F**F>T)break;
if(T%*F)continue;
n=1,s=1;k=*f;
while(T%*F==0)
{
n++;s+=k;T/=*F;
k=(k**f)%9973;
}
S=(S*s)%9973;
N=N*n;
}
if(T>1)
{
s=(int)T%9973+1;
N*=2;
S=(S*s)%9973;
}
cout<<N<<' '<<S<<'\n';
}
return 0;
}
void ciur()
{
P[0]=2;
for(k=1,i=3;k<500;k++,i+=2)
if(!p[k])
{
P[++n]=i;
for(j=2*k*k+2*k;j<=500000;j+=i)p[j]=1;
}
for(k=500,i=1001;k<=500000;k++,i+=2)
if(!p[k])
P[++n]=i;
for(i=0;i<=n;i++)PR[i]=(int)(P[i]%9973);
}