Pagini recente » Cod sursa (job #1478407) | Cod sursa (job #2053194) | Cod sursa (job #1202378) | Cod sursa (job #3143094) | Cod sursa (job #2575240)
#include <bits/stdc++.h>
#define mod 9973
using namespace std;
ifstream fin ("ssnd.in");
ofstream fout ("ssnd.out");
void usain_bolt()
{
ios::sync_with_stdio(false);
fin.tie(0);
}
const int N = 1e6 + 5;
vector < long long > prime;
bool composite[N];
void ciur()
{
for(int i = 2; i <= 1e6; ++i) {
if(composite[i] == false) prime.push_back(1LL * i);
for(int j = 0; j < prime.size() && i * prime[j] <= 1e6; ++j) {
composite[i * prime[j]] = true;
if(i % prime[j] == 0) break;
}
}
}
long long pwr(long long a, int b)
{
long long sol = 1;
while(b > 0) {
if(b & 1) sol = (sol * a);
a = (a * a);
b >>= 1LL;
}
return sol;
}
int main()
{
usain_bolt();
ciur();
int tt;
fin >> tt;
for(; tt; --tt) {
long long n, sum_divs = 1;
long long divs = 1;
fin >> n;
for(int i = 0; i < prime.size() && prime[i] * prime[i] <= n; ++i) {
int e = 0;
if(n % prime[i] == 0) {
while(n % prime[i] == 0) n /= prime[i], ++e;
}
divs *= (e + 1);
if(e > 0) {
++e;
sum_divs = (sum_divs * ((pwr(prime[i], 1LL * e) - 1) / (prime[i] - 1))) % mod;
}
}
if(n > 1) {
divs *= 2;
sum_divs = (sum_divs * ((pwr(n, 2LL) - 1) / (n - 1))) % mod;
}
fout << divs << " " << sum_divs << "\n";
}
return 0;
}