Pagini recente » Cod sursa (job #1972212) | Cod sursa (job #543932) | Cod sursa (job #362044) | Cod sursa (job #2430618) | Cod sursa (job #2017276)
#include <bits/stdc++.h>
using namespace std;
const long long MAX = 1e6 + 15;
const long long MOD = 9973;
bool ciur [MAX + 100];
vector <long long> elemciur;
void CIUR (){
ciur[1] = 1;
for (long long i=2; i<= MAX; i++){
if (ciur[i] == 0){
elemciur.push_back(i);
for (long long j=i + i; j<=MAX; j += i){
ciur[j] = 1;
}
}
}
}
long long put (long long x, long long p){
long long sol = 1;
while(p){
if (p % 2 == 1){
sol *= x;
}
x *= x;
p /= 2;
}
return sol;
}
int main() {
freopen ("ssnd.in" , "r" , stdin);
freopen ("ssnd.out" , "w" , stdout);
ios::sync_with_stdio(false);
CIUR();
long long t;
cin>>t;
while(t--){
long long n;
cin>>n;
long long nrdiv = 1;
long long sumadiv = 1;
for (auto x : elemciur){
if (x * x > n){
break;
}
if (n % x == 0){
long long cont = 0;
while ( n % x == 0){
cont++;
n /= x;
}
sumadiv *= ((put(x , cont + 1) - 1)) / ((x - 1));
sumadiv %= MOD;
nrdiv *= cont + 1;
}
}
if (n != 1){
sumadiv *= ((put(n , 2) - 1)) / ((n - 1));
sumadiv %= MOD;
nrdiv *= 1 + 1;
}
cout<<nrdiv<<" "<<sumadiv<<'\n';
}
return 0;
}