Pagini recente » Cod sursa (job #512564) | Cod sursa (job #1387460) | Cod sursa (job #2276350) | Cod sursa (job #3195590) | Cod sursa (job #1402858)
#include<fstream>
#include<iostream>
#define MOD 9973
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long N,i,j,T,rad,psuma,pnr,put,nr,exponent,da,putere;
long long nrprime[500100];
bool nprim[500100];
void eratos();
inline long long pow(long long,long long);
int main()
{
f>>T;
nrprime[++nrprime[0]]=2;
eratos();
for (i=0;i<T;++i)
{
f>>N;
psuma=pnr=1;
for (j=1;j<=nrprime[0] && 1LL*nrprime[j]*nrprime[j]<=N;++j)
{
if (N%nrprime[j]==0)
{
put=0;
while (N%nrprime[j]==0)
{
++put;
N/=nrprime[j];
}
pnr*=(put+1);
nr=nrprime[j];
exponent=put+1;
putere=(pow(nr,exponent)-1)%MOD;
da=( putere*(pow(nr-1,MOD-2)%MOD) )%MOD;
psuma=(psuma*da)%MOD;
}
}
if (N>1)
{
pnr*=2;
nr=N;
exponent=2;
putere=pow(nr,exponent)-1;
da=(putere*(pow(nr-1,MOD-2)%MOD))%MOD;
psuma=(psuma*da)%MOD;
}
g<<pnr%MOD<<' '<<psuma%MOD<<'\n';
}
f.close();g.close();
return 0;
}
void eratos()
{
for (i=1;(i<<1)+1<=1000005;++i)
{
if (!nprim[i])
{
nrprime[++nrprime[0]]=(i<<1)+1;
for (j=(i*i<<1)+(i<<1);(j<<1)+1<=1000005;j+=(i<<1)+1)
nprim[j]=true;
}
}
}
inline long long pow(long long base,long long exp)
{
long long rez=1;
base=base%MOD;
while (exp>0)
{
if (exp%2==1) rez=(rez*base)%MOD;
base=(base*base)%MOD;
exp/=2;
}
return rez;
}