Pagini recente » Cod sursa (job #1326530) | Cod sursa (job #2379279) | Cod sursa (job #728855) | Cod sursa (job #2936285) | Cod sursa (job #1193521)
#include <cstdio>
using namespace std;
#define LL long long
#define MOD 9973
#define NMAX 1000005
#define max(a,b) ((a>b) ? a : b)
unsigned LL N,i,j,S,P,X,E;
bool sel[NMAX];
LL prime[NMAX/10];
LL pow(LL baza,int putere)
{
LL P=1;
for (int i=1; i<=putere; ++i) P*=baza;
return P;
}
LL calcul(LL A,int X)
{
return ((pow(A,X)-1)/(A-1));
}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%lld",&N);
for (i=2; i<NMAX; i++)
if (!sel[i])
{
prime[++prime[0]]=i;
for (j=2*i; j<NMAX; j+=i) sel[j]=true;
}
while (N--)
{
scanf("%lld",&X);
P=S=i=1;
while (X && X>=prime[i]*prime[i])
{
E=0;
while (X%prime[i]==0)
{
X/=prime[i];
++E;
}
if (E>0) S=((S%MOD)*calcul(prime[i],E+1))%MOD,P=P*(E+1);
++i;
}
if (X>1)
{
P*=2;
S=((S%MOD)*((X*X-1)/(X-1)))%MOD;
}
printf("%lld %lld\n",P,S);
}
return 0;
}