Pagini recente » Cod sursa (job #866272) | Cod sursa (job #2527965) | Cod sursa (job #2532706) | Cod sursa (job #85381) | Cod sursa (job #1876897)
#include <fstream>
#include <cstdio>
#define LL long long
#define Nmax 1000000
#define MOD 9973
using namespace std;
ofstream g("ssnd.out");
int v[Nmax+2],nrp;
LL n;
void ciur()
{
for (LL i=2;i<=Nmax;i++)
{
if (v[i]==0)
{
v[++nrp] = i;
for (LL j=i*i;j<=Nmax;j+=i)
v[j] = 1;
}
}
}
int put(LL a,int b)
{
if (b==1)
return a%MOD;
else if (b%2==1)
return (put((a*a)%MOD,b/2) * a)%MOD;
else
return put((a*a)%MOD,b/2);
}
int main()
{
freopen("ssnd.in","r",stdin);
int t;
scanf("%d",&t);
ciur();
while (t--)
{
scanf("%lld",&n);
int nr=1,s=1,c;
for (int j=1;j<=nrp;j++)
{
c=0;
while (n%v[j]==0)
{
n/=v[j];
c++;
}
nr=nr*(c+1);
if (c!=0)
s = (s *((put(v[j],c+1) - 1 + MOD) % MOD * put(v[j]-1,MOD-2)) )% MOD;
}
if (n!=1)
{
nr=nr*2;
s = ((s * put(n,2) - 1 + MOD) % MOD * put(n-1,MOD-2) )% MOD;
}
g<<nr<<' '<<s<<'\n';
}
return 0;
}