Pagini recente » cel_mai_mare_olimpicar1 | Cod sursa (job #272221) | Cod sursa (job #820528) | Cod sursa (job #2316250) | Cod sursa (job #1628329)
#include <cstdio>
int nr_div, sum_div;
void desc (long long n)
{
nr_div = 1;
sum_div = 1;
int e, d = 2, putere;
while (d * d <= n && n > 1)
{
e = 0;
putere = 1;
while (n % d == 0)
{
e++;
putere = putere * d;
n = n / d;
}
if (e)
{
nr_div = nr_div * (e + 1);
sum_div = sum_div * (putere * d - 1) / (d - 1);
}
d++;
}
if (n > 1)
{
nr_div = nr_div * 2;
sum_div = sum_div * (n * n - 1) / (n - 1);
}
}
int main()
{
freopen("ssnd.in", "r", stdin);
freopen("ssnd.out", "w", stdout);
int t;
long long n;
scanf("%d", &t);
int i;
for (i = 1; i <= t; ++i)
{
scanf("%lld", &n);
desc(n);
printf("%d %d\n", nr_div, sum_div);
}
return 0;
}