Pagini recente » Cod sursa (job #2655989) | Cod sursa (job #57306) | Cod sursa (job #1760118) | Cod sursa (job #152155) | Cod sursa (job #1591235)
#include <fstream>
#include <bitset>
#define LL long long
#define NMAX 1000005
#define mod 9973
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int nr, sum;
int t, k, p;
LL n;
bitset<NMAX> nprim;
int v[NMAX >> 3];
void ciur()
{
nprim[1] = 1;
for (int i = 2; i < NMAX; ++i)
if (!nprim[i])
{
v[++k] = i;
for (int j = i+i; j < NMAX; j += i)
nprim[j] = 1;
}
}
int exp(int x, int a)
{
if (x == 0) return 0;
if (x == 1) return 1;
int rez = 1;
x %= mod;
for (int i = 0; (1<<i) <= a; ++i)
{
if (a & (1<<i))
rez = (rez * x) % mod;
x = (x * x) % mod;
}
return rez;
}
int main()
{
int cn;
ciur();
fin >> t;
while (t--)
{
fin >> n;
nr = 1; sum = 1;
for (int i = 1; (i <= k) && (v[i] * v[i] <= n); ++i)
{
p = 0;
while (n % v[i] == 0)
{
++p;
n /= v[i];
}
nr = nr * (p+1);
if (p) sum = (((sum * (exp(v[i], p+1) - 1)) % mod) * exp(v[i] - 1, mod - 2)) % mod;
}
if (n > 1)
{
nr *= 2;
sum = (sum * (n + 1)) % mod;
}
fout << nr << ' ' << sum << '\n';
}
return 0;
}