Pagini recente » Cod sursa (job #1790076) | Cod sursa (job #2172674)
#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, p;
bool b[PLIM];
ll prim[100000];
int main()
{
for(ll i = 2; i < PLIM; ++i)
{
if(!b[i])
{
prim[p++] = i;
for(ll j = i*2; j < PLIM; j += i)
{
b[j] = true;
}
}
}
fin >> t;
for(ll i = 0; i < t; ++i)
{
fin >> n;
ll k = 0;
ll sum = 1;
ll nr = 1;
while(prim[k] * prim[k] <= n)
{
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;
}
if(n > 1)
{
nr *= 2;
sum = ((sum * (n*n - 1)) / (n - 1)) % MOD;
}
fout << nr << " " << sum << "\n";
}
return 0;
}