Pagini recente » Cod sursa (job #1496627) | Cod sursa (job #1348171) | Cod sursa (job #349757) | Cod sursa (job #1107109) | Cod sursa (job #1212857)
#include <fstream>
#include <bitset>
#define DIM 1000010
#define MOD 9973
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
bitset<DIM> v;
long long P[DIM];
long long D[100];
long long E[100];
int n, m, t, i, j, pd, nd, x, y, p, k;
long long putere(long long a, long long b) {
long long r = 1;
while (b) {
if (b&1)
r = (r * a) % MOD;
a = a * a % MOD;
b/=2;
}
return r;
}
int main() {
for (i=2;i<=1000000;i++) {
if (v[i] == 0) {
P[++p] = i;
for (j=i+i;j<=1000000;j+=i)
v[j] = 1;
}
}
fin>>t;
for (;t--;) {
fin>>n;
k = 0;
long long m = n;
for (i=1;P[i]*P[i]<=m;i++) {
if (n%P[i] == 0) {
k++;
D[k] = P[i];
E[k] = 0;
while (n%P[i] == 0) {
E[k]++;
n/=P[i];
}
}
}
if (n!=1) {
D[++k] = n;
E[k] = 1;
}
nd = 1; pd = 1;
for (i=1;i<=k;i++) {
nd = nd * (1+E[i]);
x = putere(D[i], 1+E[i]);
x--;
if (x < 0)
x+=MOD;
y = putere(D[i]-1, MOD-2);
x = x * y % MOD;
pd = pd * x % MOD;
}
fout<<nd<<" "<<pd<<"\n";
}
return 0;
}