Pagini recente » Cod sursa (job #2021928) | Cod sursa (job #1782869) | Cod sursa (job #916440) | Cod sursa (job #830057) | Cod sursa (job #2073148)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("ssnd.in");
ofstream cout("ssnd.out");
const int MAX_PR = 78520;
const int MAX = 1e6 + 27;
const int MOD = 9973;
void Init(vector < int > &prime) {
int index = 0;
vector < bool > used (MAX);
for (int i = 2; i < MAX; i ++) {
if (used[i]) {
continue;
}
prime[++ index] = 1ll * i;
for (int j = i + i; j < MAX; j += i) {
used[j] = true;
}
}
}
void Print_ssnd(long long n, vector < int > &prime) {
int d = 1, s = 1;
for (int i = 1; 1ll * prime[i] * prime[i] <= n; i ++) {
if (n % prime[i]) {
continue;
}
long long cur_exp = 0;
long long cur_nr = 1;
while (n % prime[i] == 0) {
n /= prime[i];
cur_exp ++;
cur_nr *= 1ll * prime[i];
}
d *= (cur_exp + 1);
d %= MOD;
s *= ((cur_nr * prime[i] - 1) / (prime[i] - 1));
s %= MOD;
}
if (n != 1) {
d *= 2ll;
d %= MOD;
s *= ((n * n - 1) / (n - 1));
s %= MOD;
}
cout << d << ' ' << s << '\n';
}
int main(int argc, char const *argv[]) {
vector < int > prime(MAX);
Init(prime);
int t;
cin >> t;
while (t --) {
long long n;
cin >> n;
Print_ssnd(n, prime);
}
}