Pagini recente » Cod sursa (job #2511808) | Cod sursa (job #3030143) | Cod sursa (job #387509) | Cod sursa (job #1296078) | Cod sursa (job #459414)
Cod sursa(job #459414)
#include <cstdio>
#define ll long long
#define FIN "ssnd.in"
#define FOU "ssnd.out"
#define PW(i) ( 1 << (i) )
#define SQ(i) ( (ll) (i) * (i) )
#define MOD 9973
ll N;
int T;
inline int pwlg(int n, int p)
{
int a = n, sol = 1;
for (int i = 0; PW(i) <= p; ++i)
{
if ( (PW(i) & p) > 0)
sol = (sol * a) % MOD;
a = SQ(a) % MOD;
}
return sol;
}
void ssnd()
{
scanf("%lld", &N);
int NR = 1, SUM = 1;
ll AUX = N;
for (int i = 2; SQ(i) <= N; ++i)
if (N % i == 0)
{
int p, s;
for (p = 0, s = 1; AUX % i == 0; AUX /= i, s *= i, ++p ) ;
NR *= p + 1;
SUM *= ((ll) s * i - 1) % MOD, SUM %= MOD;
SUM *= pwlg (i - 1, MOD - 2), SUM %= MOD;
}
if (AUX > 1)
{
NR <<= 1;
SUM *= (SQ(AUX) - 1) % MOD, SUM %= MOD;
SUM *= pwlg (AUX - 1, MOD - 2), SUM %= MOD;
}
printf("%d %d\n", NR, SUM);
}
int main()
{
freopen(FIN, "r", stdin);
freopen(FOU, "w", stdout);
for (scanf("%d", &T); T ; --T)
ssnd () ;
}