Pagini recente » Cod sursa (job #2558983) | Cod sursa (job #2240961) | Cod sursa (job #638592) | Cod sursa (job #329296) | Cod sursa (job #1479011)
#include <fstream>
#include <cmath>
#include <vector>
#include <set>
#include <algorithm>
#include <cstring>
#include <map>
#include <iomanip>
#include <time.h>
//#include <iostream>
#define lld unsigned long long
using namespace std;
ifstream cin("ssnd.in");
ofstream cout("ssnd.out");
lld power(lld b, lld e)
{
lld variabila;
if(e == 0)
return 1;
if(e % 2 == 0)
{
variabila = power(b, e/2);
return (variabila * variabila);
}
else
return (b * power(b, e - 1));
}
lld x[1000005], n, y[1000005], a, v;
int main(){
cin >> n;
for(int i = 2; i <= 1000003; i++){
if(x[i] == 0){
y[a++] = i;
for(int j = i + i; j <= 1000003; j+=i)
x[j] = 1;
}
}
for(int i = 0; i < n; i++)
{
cin >> v;
lld t = 0, s = 1, o = 1, u = 0, yy = 0, p = sqrt(v);
while(v != 1 && yy <= p)
{
yy = 0;
lld d = 0;
while(v % y[t] == 0)
{
v /= y[t];
d++;
}
o *= (power(y[t], (d + 1)) - 1) / (y[t] - 1);
s *= (d + 1);
t++;
u = max(u, d);
}
if(u == 0)
cout << 2 << " " << v + 1 << " ";
else
cout << s << " " << o << "\n";
}
return 0;
}