Pagini recente » Cod sursa (job #1995201) | Cod sursa (job #1998012) | Cod sursa (job #658229) | Cod sursa (job #1242824) | Cod sursa (job #2719409)
#include <bits/stdc++.h>
#define MOD 9973
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
const int vmax = 1e6;
typedef long long ll;
bool p[vmax + 5];
vector<ll> prim;
void make_ciur()
{
for(int i = 2; i <= vmax; ++i)
if(!p[i])
{
prim.emplace_back(i);
for(long long j = 1LL * i * i; j <= vmax; j += i)
p[j] = 1;
}
}
int main()
{
make_ciur();
int t;
fin >> t;
while(t--)
{
ll n;
fin >> n;
long long carD = 1, sumD = 1;
for(int i = 0; i < (int)prim.size() && n > 1 && prim[i] * prim[i] <= n; ++i)
if(n % prim[i] == 0)
{
int exp = 0;
ll val = 1;
while(n % prim[i] == 0){
++exp;
val *= prim[i];
n /= prim[i];
}
carD *= (1 + exp);
val *= prim[i];
sumD = (sumD * ((val - 1) / (prim[i] - 1)) % MOD) % MOD;
}
if(n > 1){
carD *= 2;
sumD = sumD * (n + 1) % MOD;
}
fout << carD << ' ' << sumD << '\n';
}
return 0;
}