Pagini recente » Cod sursa (job #1160624) | Cod sursa (job #1584570) | Cod sursa (job #3179530) | Cod sursa (job #592048) | Cod sursa (job #2456791)
#pragma GCC optimize("O3")
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
#define MOD 9973
long long put(long long b, int e)
{
long long ret = 1;
while(e)
{
if(e & 1)
ret *= b;
b *= b;
e >>= 1;
}
return ret;
}
int primes[78500], cntPrimes;
bool ciur[1000005];
int main()
{
int t;
in >> t;
primes[cntPrimes++] = 2;
for(int i = 4; i <= 1000000; i += 2)
ciur[i] = 1;
for(int i = 3; i <= 1000000; i += 2)
{
if(!ciur[i])
{
primes[cntPrimes++] = i;
if(1000000/i >= i)
{
for(int j = i * i; j <= 1000000; j += i)
ciur[j] = 1;
}
}
}
while(t--)
{
long long x;
int cnt = 1;
int sum = 1;
in >> x;
for(int i = 0; i < cntPrimes && x != 1; i++)
{
int p = primes[i];
if(x % p == 0)
{
int e = 0;
while(x % p == 0)
{
x /= p;
e++;
}
cnt = (cnt * (e+1)) % MOD;
sum = (1LL * sum * (put(p, e+1) - 1) / (p - 1)) % MOD;
}
}
if(x != 1)
{
long long p = x;
int e = 1;
cnt = (cnt * (e+1)) % MOD;
sum = (1LL * sum * (p*p - 1) / (p - 1)) % MOD;
}
out << cnt << ' ' << sum << '\n';
}
return 0;
}