Pagini recente » Cod sursa (job #649262) | Cod sursa (job #2249347) | Cod sursa (job #655824) | Cod sursa (job #506637) | Cod sursa (job #2485574)
#include <bits/stdc++.h>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
const int MOD = 9973;
const int N = 100010;
int64_t n, nr, k, prime[N], c[N];
void desc(int64_t), ciur();
int main()
{
f >> n;
ciur();
for(; n; n--)
{
f >> nr;
desc(nr);
}
return 0;
}
void ciur()
{
memset(c, 1, sizeof(c));
c[0] = c[1] = 0;
for(int i = 2; i < N / 2; i++)
if(c[i])
{
prime[++k] = i;
for(int j = i * 2; j <= N; j += i)
c[j] = 0;
}
}
void desc(int64_t x)
{
int e, as, ad, sd = 1, nd = 1;
for(int i = 1; prime[i] * prime[i] <= k; i++)
{
if(x % prime[i] == 0)
{
e = as = ad = 1;
while(x % prime[i] == 0)
{
e++;
ad *= prime[i];
as = (ad + as) % MOD;
x /= prime[i];
}
nd *= e;
sd = (sd * as) % MOD;
}
}
if(x != 1)
{
sd = (sd * (1 + x)) % MOD;
nd *= 2;
}
g << nd << ' ' << sd << '\n';
}