Pagini recente » Cod sursa (job #1912792) | Cod sursa (job #3280660) | Cod sursa (job #2027734) | Cod sursa (job #1770603) | Cod sursa (job #1358972)
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
#define mod 9973
#define nmax 1000005
#define ll long long
using namespace std;
ll t, n;
vector <ll> P;
bool viz[nmax];
void ciur() {
for (ll i = 2; i < nmax; i++)
if (!viz[i]) {
P.push_back(i);
for (ll j = 2 * i; j < nmax; j += i)
viz[j] = true;
}
}
int main() {
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
ciur();
fin >> t;
for (ll k = 1; k <= t; k++) {
fin >> n;
ll nrDiv = 1;
ll sum = 1;
ll len = sqrt(n);
for (ll i = 0; P[i] <= len; i++) {
if (n % P[i] == 0) {
ll nr = 1;
ll aux = n;
while (n % P[i] == 0) {
nr++;
n /= P[i];
}
nrDiv *= nr;
sum *= (aux / n) * P[i] - 1;
sum /= (P[i] - 1);
sum %= mod;
len = sqrt(n);
}
}
if (n > 1) {
nrDiv *= 2;
sum *= (n+1);
sum %= mod;
}
fout << nrDiv << " " << sum << "\n";
}
fin.close();
fout.close();
return 0;
}