Pagini recente » Cod sursa (job #1210556) | Cod sursa (job #1539670) | Cod sursa (job #1232535) | Cod sursa (job #2032139) | Cod sursa (job #1565340)
#include <fstream>
#include <bitset>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long i,ans,t,z,pr,put,nre,inv[100001],vd,nrd,MOD=9973,nr,p,x,j,prim[100001],l;
bitset <1000001> viz;
int main()
{
f>>t;
prim[l=1]=2;
for (i=3;i<=1000000;i+=2)
if (viz[i]==false)
{
prim[++l]=i;
for (j=i*i;j<=1000000;j+=i)
viz[j]=true;
}
for (i=1;i<=t;i++)
{
f>>x;
nrd=1;
nre=1;
for (j=1;prim[j]*prim[j]<=x && j<=l;j++)
if (x%prim[j]==0){
pr=prim[j];
nr=0;
while(x%prim[j]==0)
pr*=prim[j],nr++,x/=prim[j];
pr--;
nrd*=(nr+1);
pr%=MOD;
nre*=pr;
put=(prim[j]-1);
ans=1;
for (z=0;(1<<z)<=(MOD-2);z++)
{
if ((MOD-2) & (1<<z))
ans*=put,ans%=MOD;
put=put*put;
put%=MOD;
}
nre*=ans;
nre%=MOD;
}
if (x>1) {nre*=(x+1);
nre%=MOD;
nrd*=2;
}
g<<nrd<<' '<<nre<<'\n';
}
return 0;
}