Pagini recente » Cod sursa (job #133115) | Cod sursa (job #292341) | Cod sursa (job #2524128) | Cod sursa (job #1060477) | Cod sursa (job #2485597)
#include <bits/stdc++.h>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
const int64_t MOD = 9973;
const int64_t 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(int64_t i = 2; i < N / 2; i++)
if(c[i])
{
prime[++k] = i;
for(int64_t j = i * 2; j <= N; j += i)
c[j] = 0;
}
}
void desc(int64_t x)
{
int64_t e, as, ad, sd = 1, nd = 1;
for(int64_t i = 1; prime[i] * prime[i] <= x && i <= k; i++)
{
if(x % prime[i] == 0)
{
e = as = ad = 1;
while(x % prime[i] == 0)
{
e++;
ad = (ad * prime[i]) % MOD;
as = ad + as;
x /= prime[i];
}
nd = (nd * e) % MOD;
sd = (sd * as) % MOD;
}
}
if(x != 1)
{
sd = (sd * (1 + x)) % MOD;
nd *= 2;
}
g << nd << ' ' << sd << '\n';
}