Pagini recente » Cod sursa (job #3318709) | Cod sursa (job #3308974) | Cod sursa (job #3318533) | Cod sursa (job #1363038) | Cod sursa (job #3359285)
#include <bits/stdc++.h>
using namespace std;
bool fol[1000005];
vector<int> prime;
void ciur() {
for (int i = 2; i <= 1000000; i++) fol[i] = 1;
for (int i = 2; i * i <= 1000000; i++) {
if (fol[i]) {
for (int j = i * i; j <= 1000000; j += i) {
fol[j]=0;
}
}
}
for (int i = 2; i <= 1000000; i++) {
if (fol[i]) prime.push_back(i);
}
}
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int main() {
long long n[1005], nn = 0;
i f >> nn;
for (int i = 1; i <= nn; i++) {
f >> n[i];
}
ciur();
for (int l = 1; l <= nn; l++) {
long long nr = 1;
long long suma = 1;
long long temp = n[l];
for (int p : prime) {
if (1LL * p * p > temp) break;
if (temp % p == 0) {
int exp = 0;
long long put = 1;
long long suma_p = 1;
while (temp % p == 0) {
exp++;
put = (put * p) % 9973;
suma_p = (suma_p + put) % 9973;
temp /= p;
}
nr = nr * (exp + 1);
suma = (suma * suma_p) % 9973;
}
}
if (temp > 1) {
nr = nr * 2;
suma = (suma * ((1 + temp) % 9973)) % 9973;
}
g << nr << ' ' << suma << '\n';
}
f.close();
g.close();
return 0;
}