Pagini recente » Cod sursa (job #308325) | Cod sursa (job #1316942) | Cod sursa (job #573682) | Cod sursa (job #2845167) | Cod sursa (job #2172517)
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
#define pb push_back
#define ll long long
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
const ll PLIM = 1e6+2;
const ll MOD = 9973;
ll t, n;
ll k;
bool b[PLIM];
vector <ll> prim;
int main()
{
for(ll i = 4; i < PLIM; i += 2)
{
b[i] = true;
}
prim.pb(2);
for(ll i = 3; i < PLIM; i += 2)
{
if(!b[i])
{
prim.pb(i);
for(ll j = i*2; j < PLIM; j += i)
{
b[j] = true;
}
}
}
fin >> t;
for(ll i = 0; i < t; ++i)
{
fin >> n;
k = 0;
ll sum = 1;
ll nr = 1;
while(n > 1)
{
ll db = 1;
ll pw = prim[k];
while(n % prim[k] == 0)
{
n /= prim[k];
++db;
pw *= prim[k];
}
nr *= db;
sum = ((sum * (pw - 1)) / (prim[k] - 1)) % MOD;
++k;
}
fout << nr << " " << sum << "\n";
}
return 0;
}