Pagini recente » Cod sursa (job #1041428) | Cod sursa (job #1770891) | Cod sursa (job #261699) | Cod sursa (job #1909939) | Cod sursa (job #2238122)
#include <bits/stdc++.h>
using namespace std;
vector <int> prime;
bool vf[2000001];
void ciur ()
{
for (int i = 1; i <= 1000000; i++)
{
vf[i] = true;
}
for (int i = 2; i <= 1000000; i++)
{
if (vf[i])
{
prime.push_back(i);
for (int j = 2 * i; j <= 1000000; j+=i)
vf[j] = false;
}
}
}
int main() {
ifstream inputFile("ssnd.in");
ofstream outputFile("ssnd.out");
ciur();
int n, x;
inputFile >> n;
for (int i = 1; i <= n; i++)
{
inputFile >> x;
long long s = 1;
int p = 1;
for (auto y : prime)
{
int nr = 0;
long long power = 1;
if (1LL * y * y > x) break;
while ( x % y == 0)
{
x /= y;
nr++;
power *= y;
}
p*= (nr+1);
power *= y;
power -= 1;
s *= (power / (y - 1));
}
if (x != 1)
{
p *= 2;
s *= (x + 1);
}
outputFile << p << " " << s << "\n";
}
return 0;
}