Pagini recente » Cod sursa (job #2913399) | Cod sursa (job #2356909) | Cod sursa (job #2934100) | Cod sursa (job #866626) | Cod sursa (job #2348212)
#include <bits/stdc++.h>
using namespace std;
#define MOD 9973
#define ll long long
bitset<1000010>ciur;
int prime[100010],p,d;
int sus, jos, dv;
int inv(int x, int n){
int y=1;
while (n){
if (n&1){
y=(y*x)%MOD;
}
x=(x*x)%MOD;
n>>=1;
}
return y;
}
int main()
{
int i,n,k,nr=0,j;
ll x;
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
for (i=2;i<1000005;i++){
if (ciur[i]==0){
prime[++nr]=i;
for (j=2*i;j<1000005;j+=i)
ciur[j]=1;
}
}
scanf("%d",&n);
while (n){
n--;
scanf("%lld",&x);
k=0;
sus=1;
jos=1;
dv=1;
for (i=1;1LL*prime[i]*prime[i]<=x&&i<=nr;i++){
if (x%prime[i]==0){
p=prime[i];
d=0;
while (x%prime[i]==0){
x/=prime[i];
d++;
}
dv=(dv*(d+1))%MOD;
sus=(sus*((inv(p%MOD,d+1)-1+MOD)%MOD))%MOD;
jos=(jos*((p-1+MOD)%MOD))%MOD;
}
}
if (x>1){
dv=(dv*2)%MOD;
sus=(sus*(x+1))%MOD;
}
jos=inv(jos%MOD,MOD-2);
sus=(sus*jos)%MOD;
printf("%d %d\n",dv,sus);
}
return 0;
}