Pagini recente » Cod sursa (job #2544219) | Cod sursa (job #699114) | Cod sursa (job #159561) | Cod sursa (job #813850) | Cod sursa (job #1479031)
#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");
const int MOD = 9973;
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, p = sqrt(v);
while(v != 1 && y[t] <= p)
{
lld d = 0;
while(v % y[t] == 0)
{
v /= y[t];
d++;
}
o *= ((power(y[t], (d + 1)) - 1) / (y[t] - 1)) % MOD;
s *= (d + 1);
t++;
u = max(u, d);
}
if(v > 1){
cout << s * 2 << " " << (o * (v + 1)) % MOD << "\n";
}
else
cout << s << " " << o << "\n";
}
return 0;
}