Pagini recente » Cod sursa (job #1739763) | Cod sursa (job #2710653) | Cod sursa (job #2218677) | Cod sursa (job #643386) | Cod sursa (job #1398625)
#include<fstream>
#include<bitset>
#define mod 9973
using namespace std;
int i, j, sum, nr, a, b, nrp, e, t;
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;
for(i = 1; i <= nrp && (long long) p[i] * p[i] <= n; 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 * b) % mod) % 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 * b) % mod) % mod;
}
fout<< nr <<" "<< sum <<"\n";
}
return 0;
}