Pagini recente » Cod sursa (job #719892) | Cod sursa (job #331983) | Cod sursa (job #2113050) | Cod sursa (job #539143) | Cod sursa (job #2646702)
#include <bits/stdc++.h>
#define mod 9973
using namespace std;
ifstream fin ("ssnd.in");
ofstream fout ("ssnd.out");
const int DIM = 1000000 + 5;
vector < int > prime;
bool f[DIM];
void Ciur()
{
for(int i = 2; i <= DIM - 5; ++i) {
if(f[i] == false) {
prime.push_back(i);
for(int j = i + i; j <= DIM - 5; j += i) f[j] = true;
}
}
}
long long lgput(long long a, int b)
{
long long sol = 1;
while(b > 0) {
if(b & 1) sol = (a * sol) % mod;
a = (a * a) % mod;
b >>= 1;
}
return sol;
}
int main()
{
Ciur();
int test;
fin >> test;
for(; test; --test) {
long long n, sol2 = 1;
int sol1 = 1;
fin >> n;
for(int i = 0; 1LL * prime[i] * prime[i] <= n; ++i) {
int e = 0;
while(n % prime[i] == 0) ++e, n /= prime[i];
sol1 *= (e + 1);
if(e > 0) {
++e;
long long raise = lgput(1LL * prime[i], e);
sol2 = (sol2 * (raise - 1) / (prime[i] - 1)) % mod;
}
}
if(n > 1) {
sol1 *= 2;
long long raise = lgput(n, 2);
sol2 = (sol2 * (raise - 1) / (n - 1)) % mod;
}
fout << sol1 << " " << sol2 << "\n";
}
return 0;
}