Pagini recente » Cod sursa (job #1992543) | Cod sursa (job #619079) | Cod sursa (job #49070) | Cod sursa (job #1058625) | Cod sursa (job #2870045)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
#define ll long long
const int MAX=1e6;
const int MOD=9973;
int t,n,cnt,v[MAX],prim[MAX];
int pow(int n, int p)
{
int rez=1;
n%=MOD;
while(p)
{
if(p&1)
rez=(rez*n)%MOD;
n=(n*n)%MOD;
p>>=1;
}
return rez;
}
int main()
{
v[0]=v[1]=1;
for(int i=2;i<MAX;i++)
if(!v[i])
{
prim[++cnt]=i;
for(int j=2*i;j<MAX;j+=i)
v[j]=1;
}
fin >> t;
while(t--)
{
fin >> n;
int nrdiv=1,sumdiv=1;
for(int i=1,d=2;d*d<=n;d=prim[++i])
if(n%d==0)
{
int k=0,nn=n;
while(n%d==0)
n/=d, k++;
nrdiv*=k+1;
int f1=(pow(d,k+1)-1)%MOD;
int f2=pow(d-1,MOD-2);
sumdiv=(((sumdiv*f1)%MOD)*f2)%MOD;
}
if(v[n]==0)
{
nrdiv*=2;
sumdiv=(1LL*sumdiv*(n+1))%MOD;
}
fout << nrdiv << " " << sumdiv << '\n';
}
return 0;
}