Pagini recente » Cod sursa (job #1172626) | Cod sursa (job #156116) | Cod sursa (job #3163135) | Cod sursa (job #1978248) | Cod sursa (job #1398672)
#include<fstream>
#include<cmath>
#include<bitset>
#define mod 9973
using namespace std;
int i, j, sum, nr, nrp, e, t, a, b, r;
long long n, aux;
bitset<1000002> c;
int p[100000];
int putere(int x, int p){
if(p == 0){
return 1;
}
else{
int a = putere(x, p / 2);
if(p % 2 == 0){
return a * a % mod;
}
else{
return a * a % mod * x % mod;
}
}
}
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int main(){
for(i = 2; i <= 1000000; i++){
if(c[i] == 0){
p[++nrp] = i;
for(j = i + i; j <= 1000000; j += i){
c[j] = 1;
}
}
}
fin>> t;
for(; t; t--){
fin>> n;
aux = n;
nr = 1;
sum = 1;
r = sqrt(n * 1.0);
for(i = 1; i <= nrp && (long long) p[i] <= r; i++){
e = 0;
while(aux % p[i] == 0){
e++;
aux /= p[i];
}
if(e != 0){
nr *= (e + 1);
a = putere(p[i], e + 1);
a--;
if(a < 0){
a += mod;
}
b = putere(p[i] - 1, mod - 2);
sum = sum * a % mod * b % mod;
}
}
if(aux != 1){
nr *= 2;
a = putere(aux, 2);
a--;
if(a < 0){
a += mod;
}
b = putere(aux - 1, mod - 2);
sum = sum * a % mod * b % mod;
}
fout<< nr <<" "<< sum <<"\n";
}
return 0;
}