Pagini recente » Cod sursa (job #2490661) | Cod sursa (job #2630212) | Cod sursa (job #3144135) | Cod sursa (job #505678) | Cod sursa (job #2745606)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
unordered_map<int,int> d;
void div(ll n){
while(n%2==0){
d[2]++;
n=n>>1;
}
for(int i=3;i*i<=n;i+=2){
while(n%i==0){
d[i]++;
n/=i;
}
}
if(n>2){
d[n]++;
}
}
ll pwr(ll n,ll p){
ll rez=1;
while(p){
if(p&1)rez*=n;
n*=n;
p=p>>1;
}
return rez;
}
int main(){
int t;
in>>t;
for(int i=0;i<t;i++){
ll nr;
in>>nr;
d.clear();
div(nr);
ll nr_div=1,suma=1;
for(auto j:d){
nr_div*=(j.second+1);
suma*=(pwr(j.first,j.second+1)-1)/(j.first-1);
suma%=9973;
}
out<<nr_div<<" "<<suma<<"\n";
}
}