Pagini recente » Cod sursa (job #825865) | Cod sursa (job #1910841) | Cod sursa (job #3161446) | Cod sursa (job #68112) | Cod sursa (job #2414703)
/**
* @Author: catalin
* @Date: 24-Apr-2019
* @Last modified by: catalin
* @Last modified time: 24-Apr-2019
*/
#include <cmath>
#include <fstream>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
typedef long long ll;
char eros[1000001];
void erosthenes() {
for (int i = 0; i <= 1000000; ++i)
eros[i] = 0;
eros[0] = eros[1] = 1;
for (int i = 2; i * i <= 1000000; ++i)
if (eros[i] == 0)
for (int j = 2; j * i <= 1000000; ++j)
eros[i * j] = 1;
}
void ssnd(ll n, ll &suma, ll &numar) {
if (n == 0)
suma = numar = 0;
else {
suma = numar = 1;
long long p = 0;
for (int i = 2; i <= n && n > 1; ++i)
if (eros[i] == 0 && n % i == 0) {
p = 0;
while (n > 1 && n % i == 0) {
n /= i;
p++;
}
numar *= (p + 1);
suma *= ceil((pow(i, p + 1) - 1) / (i - 1));
}
}
}
int main() {
int t;
ll n;
fin >> t;
for (int i = 0; i < t; ++i) {
fin >> n;
ll a, b;
ssnd(n, b, a);
fout << a << ' ' << b << "\n";
}
fin.close();
fout.close();
return 0;
}