Pagini recente » Cod sursa (job #1385852) | Cod sursa (job #1566455) | Cod sursa (job #1483847) | Istoria paginii preoni-2007/clasament/runda-4/9 | Cod sursa (job #2721569)
#include <bits/stdc++.h>
#define ll long long
#define mod 9973
#define NMAX 1000006
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
bool prim[NMAX + 5];
ll v[NMAX + 5];
void Ciur()
{
prim[1] = 0;
for (ll i = 2; i <= NMAX; i++)
prim[i] = 1;
for (ll i = 2; i * i <= NMAX; i++)
if (prim[i])
{
for (ll j = i * i; j <= NMAX; j += i)
prim[j] = 0;
}
ll j = -1;
for (ll i = 2; i <= NMAX; i++)
if (prim[i]) v[++j] = i;
}
void Rezolva(ll n)
{
ll s = 1, nr = 1, d = v[0], ind = 0;
while(n > 1)
{
ll p = 0, tmp = d;
while(n % d == 0)
{
++p;
n /= d;
tmp *= d;
}
if (p)
{
nr *= p + 1;
s *= (tmp - 1)/ (d - 1);
s %= mod;
}
d = v[++ind];
if (n > 1 && d*d > n) d = n;
}
fout << nr << " " << s % mod << '\n';
}
int main()
{
ll t, n;
Ciur();
fin >> t;
for (ll i = 1; i <= t; i++)
{
fin >> n;
Rezolva(n);
}
fin.close();
fout.close();
return 0;
}