Pagini recente » Cod sursa (job #2623116) | Cod sursa (job #1191459) | Cod sursa (job #2272910) | Cod sursa (job #2346907) | Cod sursa (job #980623)
Cod sursa(job #980623)
#include <fstream>
#define ULL unsigned long long
using namespace std;
bool pm[1000010];
int prim[1000010], k;
void ciur ()
{
for (int i = 2; i <= 1000000; i++)
{
if (!pm[i])
{
prim[++k] = i;
for (ULL j = i * i; j <= 1000000; j += i)
pm[j] = true;
}
}
}
int main ()
{
ifstream f ("ssnd.in");
ofstream g ("ssnd.out");
int t;
f >> t;
ciur ();
ULL n;
for (int i = 1; i <= t; i++)
{
f >> n;
ULL sdiv = 1, ndiv = 1;
for (int j = 1; j <= k && (ULL)prim[j] * prim[j] <= n; j++)
if (!(n % prim[j]))
{
ULL p = prim[j], e = 1;
while (!(n % prim[j]))
{
p *= prim[j];
e++;
n /= prim[j];
}
sdiv *= (p - 1) / (prim[j] - 1);
sdiv %= 9973;
ndiv *= e;
}
if (n > 1)
{
sdiv = sdiv * (n + 1);
sdiv %= 9973;
ndiv *= 2;
}
g << ndiv << " " << sdiv << '\n';
}
return 0;
}