Pagini recente » Cod sursa (job #443481) | Cod sursa (job #522954) | Cod sursa (job #1486923) | Cod sursa (job #2961393) | Cod sursa (job #1193515)
#include <cstdio>
#include <cmath>
using namespace std;
#define LL long long
#define MOD 9973
#define NMAX1 1000005
#define NMAX2 100005
LL N,X,E,S,P,i;
LL sel[NMAX1];
LL prime[NMAX2];
void Ciur()
{
for (LL i=2;i<NMAX1;i++)
{
if (sel[i]) continue;
prime[++prime[0]]=i;
for (LL j=2*i;j<NMAX1;j+=i) sel[j]=true;
}
}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%lld",&N);
Ciur();
while (N--)
{
scanf("%lld",&X);
P=S=i=1;
while (X && X>=prime[i]*prime[i])
{
E=0;
while (!(X%prime[i]))
{
X/=prime[i];
++E;
}
if (E)
{
S=(S*(((int)pow(1.0*prime[i],1.0*(E+1))-1))/(prime[i]-1));
if (S>=MOD) S-=MOD;
P=P*(E+1);
}
++i;
}
if (X>=2)
{
P*=2;
S=( S * ( (X*X-1) / (X-1) ) );
if (S>=MOD) S-=MOD;
}
printf("%lld %lld\n",P,S);
}
return 0;
}