Pagini recente » Cod sursa (job #90253) | Cod sursa (job #423982) | Cod sursa (job #344865) | Cod sursa (job #548907) | Cod sursa (job #3349082)
#include <bits/stdc++.h>
using namespace std;
#define USE_STD_IO 0
#if USE_STD_IO
#define fin cin
#define fout cout
#else
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
#endif // USE_STD_IO
const int MAX = 1000006;
const int MOD = 9973;
long long n, i, j, a, nrp, prim[MAX + 2];
bool comp[MAX + 2];
int main() {
if(USE_STD_IO) ios_base::sync_with_stdio(false);
fin.tie(NULL);
fout.tie(NULL);
prim[nrp = 1] = 2;
for(i = 3; i * i <= MAX; i += 2) {
if(!comp[i]) {
prim[++nrp] = i;
for(j = i * i; j <= MAX; j += 2 * i) {
comp[j] = true;
}
}
}
while(i <= MAX) {
if(!comp[i]) prim[++nrp] = i;
i += 2;
}
fin >> n;
while(n--) {
fin >> a;
int d = 1, e, put;
long long nrd = 1, sumd = 1;
while(d <= nrp && prim[d] * prim[d] <= a) {
if(0 == a % prim[d]) {
put = prim[d];
e = 0;
while(0 == a % prim[d]) {
e++;
put *= prim[d];
a /= prim[d];
}
nrd *= e + 1;
sumd *= (put - 1) / (prim[d] - 1);
sumd %= MOD;
}
d++;
}
if(1 < a) {
nrd *= 2;
sumd *= (a * a - 1) / (a - 1);
sumd %= MOD;
}
fout << nrd << ' ' << sumd << '\n';
}
return 0;
}