Pagini recente » Cod sursa (job #2088884) | Cod sursa (job #1105358) | Cod sursa (job #952098) | Cod sursa (job #1950161) | Cod sursa (job #2713274)
#include <bits/stdc++.h>
#define ll long long
#define MOD 9973
#define LeiiGreiPeMP3 1000005
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int n;
ll x;
vector <int> prime;
void ciur()
{
vector <bool> v(LeiiGreiPeMP3, 0);
for(int i = 2; i <= 1000000; i++)
if(!v[i])
{
prime.push_back(i);
for(int j = 2 * i; j <= 1000000; j += i)
v[j] = 1;
}
}
ll powerLog(int a, int b)
{
ll sol = 1;
while(b)
{
if(b % 2)
sol = sol * a % MOD, b--;
a = 1LL * a * a % MOD, b /= 2;
}
return sol;
}
int main()
{
f >> n;
ciur();
int cnt = prime.size();
for(; n; n--)
{
ll nrdiv = 1, s = 1;
f >> x;
for(int i = 0; i < cnt && 1LL * prime[i] * prime[i] <= x; i++)
{
if(x % prime[i] == 0)
{
int nr = 0;
while(x % prime[i] == 0)
nr++, x /= prime[i];
nrdiv *= (nr + 1);
s = s * ((powerLog(prime[i], nr + 1) - 1) * powerLog(prime[i] - 1, MOD - 2) % MOD) % MOD;
}
}
if(x != 1)
{
nrdiv *= 2;
s = s * (x + 1) % MOD;
}
g << nrdiv << " " << s << "\n";
}
return 0;
}