Pagini recente » Cod sursa (job #435515) | Cod sursa (job #647491) | Monitorul de evaluare | Cod sursa (job #2889499) | Cod sursa (job #2582531)
#include <bits/stdc++.h>
using namespace std;
long long ridicare(long long baza, long long exponent)
{
long long putere = 1;
while(exponent)
{
if(exponent % 2)putere *= baza;
baza *= baza;
exponent /= 2;
}
return putere;
}
int main()
{
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
ios::sync_with_stdio(false);
fin.tie(0);
fout.tie(0);
srand(time(NULL));
int t;
fin >> t;
for(int i = 1; i <= t; i++)
{
long long n;
fin >> n;
long long d = 2, nrDiv = 1, sumaDiv = 1;
while(d * d <= n)
{
if(n % d == 0)
{
int nrAp = 0;
while(n % d == 0)
{
nrAp++;
n /= d;
}
nrDiv *= (nrAp + 1);
sumaDiv *= ((ridicare(d, nrAp + 1) - 1) / (d - 1));
}
d++;
}
if(n > 1)
{
nrDiv *= 2;
sumaDiv *= (n * n - 1) / (n - 1);
}
fout << nrDiv << " " << sumaDiv << '\n';
}
fin.close();
fout.close();
return 0;
}