Pagini recente » Cod sursa (job #2725669) | Cod sursa (job #3352753) | Cod sursa (job #2613754) | Cod sursa (job #1328317) | Cod sursa (job #2613348)
#include <iostream>
#include <cmath>
using namespace std;
const int MOD = 9973;
void invers_modular(long long a, int b, int& inv, int& alt) {
if (!b) {
inv = 1;
alt = 0;
} else {
int x0, y0;
invers_modular(b, a % b, x0, y0);
inv = y0;
alt = x0 - a / b * y0;
}
}
int main() {
freopen("ssnd.in", "r", stdin);
freopen("ssnd.out", "w", stdout);
int t;
long long n;
cin >> t;
while (t --) {
cin >> n;
long long suma = 0;
int numarDiv = 0;
long long i;
for (i = 1;i * i < n;i ++) {
if (n % i == 0) {
suma = (suma + i) % MOD;
int tempImp, temp;
invers_modular(i, MOD, tempImp, temp);
tempImp %= MOD;
if (tempImp < 0)
tempImp += MOD;
suma = (suma + n * tempImp) % MOD;
suma = (suma + n / i) % MOD;
numarDiv += 2;
}
}
if(i * i == n) {
suma = (suma + i) % MOD;
if (suma < 0)
suma += MOD;
numarDiv ++;
}
cout << numarDiv << ' ' << suma << '\n';
}
return 0;
}