Pagini recente » Cod sursa (job #1593498) | Cod sursa (job #1236733) | Cod sursa (job #2040494) | Cod sursa (job #1341864) | Cod sursa (job #2456789)
#pragma GCC optimize("O3")
#include <iostream>
#include <fstream>
#include <vector>
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 % 2 == 1)
ret = (ret * b);// % MOD;
b = (b * b);// % MOD;
e = e / 2;
}
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;
long long cnt = 1;
long long sum = 1;
in >> x;
for(int i = 0; i < cntPrimes && x != 1; i++)
{
long long p = primes[i];
if(x % p == 0)
{
int e = 0;
while(x % p == 0)
{
x /= p;
e++;
}
cnt = (cnt * (e+1)) % MOD;
sum = (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 = (sum * (put(p, e+1) - 1) / (p - 1)) % MOD;
}
out << cnt << ' ' << sum << '\n';
}
return 0;
}