Pagini recente » Cod sursa (job #2184856) | Cod sursa (job #2468064) | Cod sursa (job #1681005) | Cod sursa (job #2849068) | Cod sursa (job #822926)
Cod sursa(job #822926)
#include <cstdio>
#include <algorithm>
using namespace std;
long long t,P[1000010],N,i,np,s,q,e,pr;
long long int n,S;
void ciur();
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
ciur();
scanf("%lld",&t);
for(;t;t--)
{
scanf("%lld",&n);
S=1; N=1;
for(i=1;i<=np&&P[i]*P[i]<=n;i++)
if(n%P[i]==0)
{
s=1; q=1;
e=1; pr=P[i]%9973;
while(n%P[i]==0)
{
e++;
q=q*pr;
s+=q;
n/=P[i];
}
N*=e;
S=(S*s)%9973;
}
if(n>1)
{
N*=2;n=(n+1)%9973;
S=(S*n)%9973;
}
printf("%lld %lld\n",N,S);
}
return 0;
}
void ciur()
{
long long k,j;
P[1]=2;
np=1;
for(k=3;k<=1000;k+=2)
if(P[k]==0)
{
np++;
P[np]=k;
for(j=k*k;j<=100000;j+=2*k)
P[j]=1;
}
for(k=1001;k<=100000;k+=2)
if(P[k]==0)
{
np++;
P[np]=k;
}
}