Pagini recente » Cod sursa (job #2381810) | Cod sursa (job #579191) | Cod sursa (job #799653) | Cod sursa (job #1867022) | Cod sursa (job #1975604)
#include <fstream>
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
int k, t, nr, nr_div, prod = 1, s = 1;
int divizor;
unsigned long long n;
int OK[1000000], p[1000000];
int putere (int a, int b)
{
int w = 1;
while (b)
{
w = w * a;
b--;
}
return w;
}
int main()
{
for (int i = 2; i <= 1000000; i++)
{
if (OK[i] == 0)
{
for (unsigned long long j = i * i; j <= 1000000; j = j + i)
OK[j] = 1;
k++;
p[k] = i;
}
}
in >> t;
k = 1;
for (int i = 1; i <= t; i++)
{
in >> n;
while (n != 1)
{
if (n % p[k] == 0)
{
nr++;
divizor = p[k];
while (n % p[k] == 0)
{
nr_div++;
n = n / p[k];
}
prod = prod * (nr_div + 1);
k++;
s = s * (putere(divizor, nr_div + 1) - 1) / (divizor - 1);
nr_div = 0;
}
else
k++;
}
out << prod << ' ' << s << '\n';
nr = 0;
k = 1;
nr_div = 0;
prod = 1;
s = 1;
}
return 0;
}