Pagini recente » Cod sursa (job #1160514) | Cod sursa (job #347509) | Cod sursa (job #1886960) | Cod sursa (job #1954049) | Cod sursa (job #1355302)
#include <iostream>
#include <fstream>
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 pow(int x,int p)
{
int n=1;
n%=MOD;
while(p)
{
n*=x;
n%=MOD;
p--;
}
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=(pow(c[i],p+1)-1)%MOD;
f2=c[i]-1;
sumdiv=(((sumdiv*f1)%MOD)/f2)%MOD;
}
if(n>1)
{
nrdiv*=2;
sumdiv=sumdiv*(n+1)%MOD;
}
cout<<nrdiv<<' '<<sumdiv<<'\n';
}
return 0;
}