Pagini recente » Cod sursa (job #2777406) | Cod sursa (job #1651054) | Cod sursa (job #390990) | Cod sursa (job #1544267) | Cod sursa (job #2511385)
#include <bits/stdc++.h>
using namespace std;
ifstream fi("ssnd.in");
ofstream fo("ssnd.out");
const int MOD = 9973;
int t, n;
bool ciur[1000005];
vector <int> prime;
void faCiur() {
for (int i = 2; i * i < 1000005; i++)
if (!ciur[i])
for (int j = i * i; j < 1000005; j += i)
ciur[j] = 1;
}
void getPrime() {
for (int i = 2; i < 1000005; i++)
if (ciur[i] == 0)
prime.push_back(i);
}
int main()
{
faCiur();
getPrime();
fi >> t;
while (t--) {
fi >> n;
int cnt = 1, suma = 1;
for (auto x: prime) {
long long e = 0, p = 1;
while (n % x == 0) {
e++;
p = 1LL * p * x;
n /= x;
}
cnt = 1LL * cnt * (e + 1);
suma = 1LL * suma * (1LL * p * x - 1) / (x - 1) % MOD;
}
if (suma == 1 && n > 1) // prim
suma = n + 1, cnt = 2;
fo << cnt << " " << suma << "\n";
}
return 0;
}