Pagini recente » Cod sursa (job #3327268) | Cod sursa (job #3304913) | Cod sursa (job #1626739) | Cod sursa (job #818051) | Cod sursa (job #3321327)
#include <fstream>
#include <vector>
#define int long long
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
bool ciur[1000010];
int i, j, t, n, sum, number_of;
vector<int> v;
const int NR = 1000000;
const int MOD = 9973;
int fastpow(int n, int x)
{
int p = 1;
while(x)
{
if (x%2)
p=(p*n)%MOD;
n=(n*n)%MOD;
x/=2;
}
return p;
}
int32_t main()
{
ciur[0] = ciur[1] = 1;
v.push_back(2);
for (j = 2*2; j <= NR; j += 2)
ciur[j] = 1;
for (i = 3; i <= NR; i += 2)
{
if (ciur[i] == 1)
continue;
for (j = i*2; j <= NR; j+=i)
ciur[j] = 1;
v.push_back(i);
}
in >> t;
while(t)
{
--t;
in >> n;
sum = 1;
number_of = 1;
for (auto ind : v)
{
if (n == 1)
break;
int numbah = 1;
int how_many = 0;
while(n%ind == 0)
{
n/=ind;
numbah=(numbah*ind)%MOD;
how_many++;
}
numbah=(numbah*ind)%MOD;
sum = (sum*((numbah-1)*fastpow(ind-1, MOD-2))%MOD)%MOD;
number_of = (number_of*(how_many+1))%MOD;
}
if (n != 1)
{
sum = (sum+n)%MOD;
number_of=(number_of+1)%MOD;
}
out << number_of << ' ' << sum << '\n';
}
return 0;
}