Pagini recente » Cod sursa (job #2320384) | Cod sursa (job #1021659) | Cod sursa (job #2191909) | Cod sursa (job #1124105) | Cod sursa (job #2335104)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin ("ssnd.in");
ofstream cout ("ssnd.out");
int t;
long long n;
int low[1000005];
vector <int> p;
long long P(int n, int x) {
long long sol = 1;
for(; x; x--)
sol *= n;
return sol;
}
int main() {
cin >> t;
low[2] = low[4] = 2; p.push_back(2);
for(int i = 3; i <= 1000000; i += 2) {
if(low[i] == 0) {
low[i] = i;
p.push_back(i);
}
for(int j = 0; j < p.size() && p[j] <= low[i] && 1LL * i * p[j] <= n; j++)
low[i * p[j]] = p[j];
}
for(; t; t--) {
cin >> n;
int nd = 1, sd = 1;
for(int i = 0; 1LL * p[i] * p[i] <= n && i < p.size(); i++) {
if(n % p[i] == 0) {
int e = 1;
while(n % p[i] == 0)
n /= p[i], e++;
nd *= e;
sd = 1LL * sd * (P(p[i], e) - 1) / (p[i] - 1) % 9973;
}
}
if(n > 1) {
nd *= 2;
sd = 1LL * sd * (n + 1) % 9973;
}
cout << nd << " " << sd << "\n";
}
return 0;
}