Pagini recente » Cod sursa (job #1480810) | Cod sursa (job #130220) | Cod sursa (job #2663402) | Cod sursa (job #401590) | Cod sursa (job #3134012)
#pragma GCC optimize("Ofast,unroll-loops")
#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
#define debug(x) cerr << #x << " = " << x << endl
#else
#define debug(x)
#endif
#define endl '\n'
#define sz(a) ((int)(a).size())
#define all(a) (a).begin(), (a).end()
#define erase_unique(a) sort(all(a)); (a).erase(unique(all(a)), (a).end())
#define f first
#define s second
#define YES cout << "YES" << endl
#define NO cout << "NO" << endl
#define lsb(x) (x & (-x))
#define FILE_NAME "ssnd"
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
const int VMAX = 1e6+5;
const int MOD = 9973;
ll n;
bool ciur[VMAX];
vector<int> primes;
void read() {
cin >> n;
}
void precalc() {
for (int i = 2; i < VMAX; i++) {
if (!ciur[i]) primes.push_back(i);
for (int j = 0; 1ll * i * primes[j] < VMAX; j++) {
ciur[i * primes[j]] = 1;
if (i % primes[j] == 0) break;
}
}
}
void solve() {
ll cnt_div = 1, sum_div = 1;
for (int i = 0; i < sz(primes) && 1ll * primes[i] * primes[i] <= n; i++) {
int e = 0;
ll p = 1;
while (n % primes[i] == 0) {
e++;
n /= primes[i];
p *= 1ll * primes[i];
}
if (e) {
cnt_div *= 1ll * (e + 1);
sum_div *= 1ll * (1ll * p * primes[i] - 1) / (primes[i] - 1);
cnt_div %= MOD;
sum_div %= MOD;
}
}
if (n != 1) {
cnt_div *= 2ll;
sum_div *= 1ll * (1ll * n * n - 1) / (n - 1);
cnt_div %= MOD;
sum_div %= MOD;
}
cout << cnt_div << ' ' << sum_div << endl;
}
signed main() {
#ifdef LOCAL
freopen("input.txt", "r", stdin);
#else
freopen(FILE_NAME ".in", "r", stdin);
freopen(FILE_NAME ".out", "w", stdout);
#endif
int t = 1;
cin >> t;
precalc();
while (t--) {
read();
solve();
}
return 0;
}