Pagini recente » Cod sursa (job #734534) | Cod sursa (job #981764) | Cod sursa (job #1361034) | Cod sursa (job #2297659) | Cod sursa (job #2836047)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("ssnd.in");
ofstream fout ("ssnd.out");
const int MOD = 9973;
long long n, s, d, e;
const int LIM = 1e6;
int prime;
vector <int> p;
bitset <LIM+5> np;
void ciur(){
np[0] = np[1] = true;
for(int i=4; i<=LIM; i+=2)
np[i] = true;
for(int i=3; i<=LIM/i; i+=2)
if(np[i] == false)
for(int j=i*i; j<=LIM; j+=i)
np[j] = true;
p.push_back(2);
for(int i=3; i <= LIM; i+=2)
if(np[i] == false)
p.push_back(i);
prime = (int)p.size();
}
long long power(long long a, long long b){
long long result = 1;
while(b != 0){
if(b&1)
result *= a;
a *= a;
b >>= 1;
}
return result;
}
int main (){
ciur();
int teste;
fin>>teste;
while(teste--){
fin>>n;
s = d = 1;
for(int i=0; i < prime && p[i] <= n / p[i]; i++){
e = 0;
while(n % p[i] == 0){
e++;
n /= p[i];
}
d *= (e+1);
s *= ((power((long long)p[i], (long long)e+1) - 1) / (p[i] - 1)) % MOD;
s %= MOD;
}
if(n != 1){
d *= 2;
s *= ((n*n - 1) / (n - 1)) % MOD;
s %= MOD;
}
fout<<d<<' '<<s<<'\n';
}
return 0;
}