Pagini recente » Cod sursa (job #2218982) | Cod sursa (job #368567) | Cod sursa (job #823667) | Cod sursa (job #3192867) | Cod sursa (job #1355351)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
const int NMAX=1000005;
const int MOD=9973;
long long n, tests, k, i, j, c[NMAX], f1, f2, nrdiv, sumdiv;
bool viz[NMAX];
inline int poww(int x,int p)
{
long n=1;
x%=MOD;
for( ; p ; p >>=1)
{
if(p & 1)n=(n*x)%MOD;
x=(x*x)%MOD;
}
return n;
}
int main()
{
ifstream cin("ssnd.in");
ofstream cout("ssnd.out");
cin>>tests;
while(tests--)
{
cin>>n;
for(i=2; i<NMAX; i++)
if(viz[i]==0)
{
c[++k]=i;
for(j=i+i; j<NMAX; j+=i)
viz[j]=1;
}
nrdiv=1;
sumdiv=1;
for(i=1; i<=k&&c[i]*c[i]<=n; i++)
{
if(n%c[i])continue;
int p=0;
while(n%c[i]==0)
{
n/=c[i];
p++;
}
nrdiv*=(p+1);
f1=(poww(c[i],p+1)-1+MOD)%MOD;
f2=poww(c[i]-1,MOD-2);
sumdiv=(((sumdiv*f1)%MOD)*f2)%MOD;
}
if(n>1)
{
nrdiv*=2;
sumdiv=sumdiv*(n+1)%MOD;
}
cout<<nrdiv<<' '<<sumdiv<<'\n';
}
return 0;
}