Pagini recente » Cod sursa (job #1037645) | Cod sursa (job #2428533)
#include <iostream>
#include <fstream>
#include <cmath>
#include <bitset>
using namespace std;
ifstream fin ("ssnd.in");
ofstream fout ("ssnd.out");
bitset <1000001> v;
long long t, p[200], pp, ii, e;
long long n, nrd, sumd, x;
int main (){
v[0]=1;
v[1]=1;
for(int i=2; i*i<=1000000; i++){
if(v[i] == 0){
pp++;
p[pp]=i;
for(int j=i*i; j<=1000000; j+=i)
v[j]=1;
}
}
fin>>t;
for(int pas=1; pas<=t; pas++){
fin>>n;
ii=1;
nrd=1;
sumd=1;
while(p[ii] * p[ii] <= n){
e=0;
while(n%p[ii] == 0){
e++;
n=n/p[ii];
}
if(e == 0){
ii++;
continue;
}
nrd=nrd * (e+1);
x=pow(p[ii], e+1);
sumd*=((x-1)/ (p[ii]-1)) %9973;
ii++;
}
if(n != 1){
sumd*=((n*n-1)/(n-1))%9973;
nrd*=2;
}
fout<<nrd<<" "<<sumd<<"\n";
}
return 0;
}