Pagini recente » Cod sursa (job #89203) | Cod sursa (job #2361012) | Cod sursa (job #2906132) | Cod sursa (job #475392) | Cod sursa (job #1841021)
#include<fstream>
#include<bitset>
#include<cmath>
using namespace std;
ifstream cin("ssnd.in");
ofstream cout("ssnd.out");
long long a[1000010], k=0, f[20000], ndiv, sdiv;
bitset <1000010> pr;
int t, e[20000];
void ciur(){
for(int i=2;i<=1000010; i++){
if(pr[i]==0){
a[++k]=i;
for(int j=2*i;j<=1000010; j+=i) pr[j]=1;
}
}
}
int main(){
ciur(); //for(int i=1; i<=200; ++i) cout<<a[i]<<" ";
unsigned long long n;
cin>>t;
while(t--){
ndiv=1; sdiv=1;
cin>>n;
int i=1, mm=1;
while(n!=1){
if(n%a[i]==0){
f[mm]=a[i];
e[mm]=0;
while(n%a[i]==0){
e[mm]++;
n/=a[i];
}
mm++;
}
i++;
}
// cout<<"i="<<i<<" "<<"mm="<<mm<<"\n";
for(int z=1; z<mm; ++z){
ndiv*=(e[z]+1);
sdiv*=(pow(f[z],e[z]+1)-1)/(f[z]-1);
}
cout<<ndiv<<" "<<sdiv%9973<<"\n";
// for(int z=1; z<mm; ++z){
// cout<<f[z]<<" "<<f[z]<<"\n"; }
}
return 0;
}