Pagini recente » Cod sursa (job #1033499) | Cod sursa (job #1316416) | Cod sursa (job #1604910) | Cod sursa (job #1154185) | Cod sursa (job #2335097)
#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;
for(int i = 2; i <= 1000000; i++) {
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; i < 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;
}
}
cout << nd << " " << sd << "\n";
}
return 0;
}