Pagini recente » Cod sursa (job #759700) | Cod sursa (job #3286113) | Cod sursa (job #1965749) | Cod sursa (job #2884469) | Cod sursa (job #1928636)
#include<cstdio>
#include<cmath>
using namespace std;
const int MOD=9973;
bool c[1000005];
int v[200005],num;
inline long long my_pow(int b,int e)
{
long long rez=1;
for(int i=1; i<=e; ++i)
rez*=b;
return rez;
}
void ciur()
{
c[0]=c[1]=1;
for(int i=4; i<=1000000; i+=2)
c[i]=1;
for(int i=3; i<=1000; i+=2)
if(c[i]==0)
for(int j=i*i; j<=1000000; j+=2*i)
c[j]=1;
num=0;
for(int i=2; i<=1000000; i++)
if(c[i]==0)
v[++num]=i;
}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
int t,lim,n,e;
long long s,d,nrd;
ciur();
scanf("%d",&t);
for(int i=1; i<=t; i++)
{
scanf("%d",&n);
lim=(int)sqrt((double)n);
s=1;
d=1;
nrd=1;
while(n>1 && v[d]<=lim)
{
e=0;
while(n>0 && n%v[d]==0)
{
n=n/v[d];
e++;
}
nrd=(nrd*(e+1))%MOD;
if(e)
s=(s*1LL*(my_pow(v[d],e+1)-1)/(v[d]-1))%MOD;
d++;
}
if(n>1)
{
nrd=(nrd*2)%MOD;
s=(s*1LL*(n*n-1)/(n-1))%MOD;
}
printf("%lld %lld\n",nrd,s);
}
return 0;
}