Pagini recente » Cod sursa (job #1087514) | Cod sursa (job #2951845) | Cod sursa (job #1360145) | Cod sursa (job #880045) | Cod sursa (job #2582964)
#include <fstream>
using namespace std;
#define MOD 9973
#define MAXN 1000005
bool ciur[MAXN];
long long prime[MAXN];
int len;
void init(){
for(int i = 2; i < MAXN; ++i){
if(!ciur[i]){
for(int j = i + i; j < MAXN; j += i)
ciur[j] = 1;
}
}
prime[++len] = 2;
for(int i = 3; i < MAXN; i += 2){
if(!ciur[i])
prime[++len] = i;
}
}
long long logpt(long long baza, long long exp){
long long rez = 1LL;
while(exp){
if(exp % 2 == 1) rez *= baza;
baza *= baza;
exp /= 2;
}
return rez;
}
int main()
{
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
ios::sync_with_stdio(false);
fin.tie(0);
fout.tie(0);
int t;
fin >> t;
init();
for(int numar = 1; numar <= t; ++numar){
long long n;
fin >> n;
long long sumdiv = 1LL, nrdiv = 1LL, pos = 1LL;
while(prime[pos] * prime[pos] <= n && pos <= len){
if(n % prime[pos] == 0){
long long exp = 0;
while(n % prime[pos] == 0){
n /= prime[pos];
exp++;
}
nrdiv *= (exp + 1);
sumdiv *= ((logpt(prime[pos], exp + 1) - 1) / (prime[pos] - 1));
sumdiv %= MOD;
}
pos++;
}
if(n > 1){
nrdiv *= 2;
sumdiv *= (n * n - 1) / (n - 1);
sumdiv %= MOD;
}
fout << nrdiv << " " << sumdiv << "\n";
}
return 0;
}