Pagini recente » Cod sursa (job #1994182) | Cod sursa (job #1924244) | Cod sursa (job #1719799) | Cod sursa (job #669080) | Cod sursa (job #2720520)
#include <bits/stdc++.h>
#define MAXX (int)1e6
#define mod 9973
using namespace std;
typedef long long ll;
const string FILENAME = "ssnd";
ifstream fin(FILENAME + ".in");
ofstream fout(FILENAME + ".out");
int t;
ll n;
bitset<MAXX + 1> c;
vector<ll> primes;
void ciur()
{
primes.push_back(2);
for(ll i = 4; i <= MAXX; i += 2)
c[i] = 1;
for(ll i = 3; i * i <= MAXX; i += 2)
if(c[i] == 0){
primes.push_back(i);
for(ll j = i * i; j <= MAXX; j+= i + i)
c[j] = 1;
}
}
ll exp (ll a, ll n)
{
ll p = 1;
while(n)
{
if(n & 1)
p = p * a % mod;
a = a * a % mod;
n >>= 1;
}
return p;
}
void desc(ll n)
{
ll e, f;
ll ans1 = 1, ans2 = 1;
for(unsigned int i = 0; i < primes.size() && primes[i] * primes[i] <= n; i++)
{
f = primes[i];
e = 0;
if(n % f == 0){
while(n % f == 0){
n /= f;
e++;
}
ans1 = ans1 * (e + 1);
ans2 = ans2 * ((exp(f, e + 1) - 1) * exp(f - 1, mod - 2) % mod) % mod;
}
}
if(n > 1)
{
ans1 *= 2;
ans2 = ans2 * ((n * n - 1) % mod * exp(n - 1, mod - 2) % mod) % mod;
}
fout << ans1 << " " << ans2 << '\n';
}
int main()
{
ciur();
fin >> t;
while(t--)
{
fin >> n;
desc(n);
}
fin.close();
fout.close();
return 0;
}