Pagini recente » Cod sursa (job #2773600) | Cod sursa (job #2950545) | Cod sursa (job #2968126) | Cod sursa (job #2694049) | Cod sursa (job #981033)
Cod sursa(job #981033)
#include <cstdio>
#include <cstring>
#define ULL unsigned long long
using namespace std;
int prim[1000069],nr,t,x,i,j;
bool ok,pm[1000010];
void ciur()
{
for (int i = 2; i <= 1000000; i++)
{
if (!pm[i])
{
prim[++nr] = i;
for (ULL j = i * i; j <= 1000000; j += i)
pm[j] = true;
}
}
}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%d", &t);
ciur();
ULL a;
for (j=1; j<=t; j++)
{
scanf("%lld", &a);
ULL Sd=1, Nrd=1;
for (i=1; i<nr && (ULL) prim[i]*prim[i]<=a; i++)
{
if (a%prim[i]==0)
{
ULL y=1, q=prim[i];
while (a%prim[i]==0)
{
y++; q*=prim[i];
a/=prim[i];
}
Nrd*=y;
Sd*=(q-1)/(prim[i]-1); Sd%=9973;
}
}
if (a>1)
{
Nrd*=2;
Sd*=(a*a-1)/(a-1); Sd%=9973;
}
printf("%lld %lld\n", Nrd, Sd);
}
return 0;
}