Pagini recente » Cod sursa (job #385590) | Cod sursa (job #1890968) | Cod sursa (job #1996217) | Cod sursa (job #831630) | Cod sursa (job #1811768)
#include <bits/stdc++.h>
using namespace std;
const int MOD = 9973;
const int N = 1000000;
bitset <N+5> ciur;
int len,P[N];
void sieve(){
int i,j;
P[++len] = 2;
for(i = 4;i <= N;i += 2){
ciur[i] = 1;
}
for(i = 3;i <= N;i += 2){
if(ciur[i] == 0){
P[++len] = i;
for(j = 3*i;j <= N;j += i+i){
ciur[j] = 1;
}
}
}
}
int main()
{
long long t,test,i,p,c,j,x;
long long nrd,sd;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
fin>>t;
sieve();
for(test = 1;test <= t;test++){
fin>>x;
nrd = 1;
sd = 1;
for(i = 1;i <= len && P[i]*P[i] <= x;i++){
if(x%P[i] == 0){
c = 1;
p = P[i];
j = P[i];
while(x%P[i] == 0){
x /= P[i];
c++;
p *= P[i];
}
nrd = nrd*c;
sd = sd*((p-1)/(j-1));
sd %= MOD;
}
}
if(x > 1){
nrd = nrd*2;
sd = sd*(x+1);
sd %= MOD;
}
fout<<nrd<<' '<<sd<<'\n';
}
return 0;
}