Pagini recente » Borderou de evaluare (job #3260093) | Borderou de evaluare (job #624689) | Cod sursa (job #338062) | Cod sursa (job #861403) | Cod sursa (job #3263822)
#include<fstream>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
const int M=9973;
int Invers_Modular(int a){
int n=M-2,i,aa=a,rez=1;
for(i=n;i>=1;i=i/2){
if(i%2==1)
rez=(1ll*rez*aa)%M;
aa=(1ll*aa*aa)%M;
}
return rez;
}
int main(){
int q,n,exp,d,prod,nrdiv,sumdiv,y,x;
fin>>q;
while(q--){
fin>>n;
sumdiv=1;
nrdiv=1;
for(d=2;d*d<=n;d++){
if(n%d==0){
exp=0;
prod=d;
while(n%d==0){
exp++;
prod=(prod*d) %M;
n=n/d;
}
//fout<<d<<" "<<exp<<endl;
nrdiv=(nrdiv*(exp+1))%M;
prod--;
if(prod<0)
prod+=M;
y=Invers_Modular(d-1);
prod=(prod*y)%M;
sumdiv=(sumdiv*prod)%M;
}
}
if(n>1){
nrdiv=(nrdiv*2)%M;
x=(n*n-1)%M;
y=Invers_Modular(n-1);
x=(x*y)%M;
sumdiv=(sumdiv*x)%M;
}
//fout<<endl;
fout<<nrdiv<<" "<<sumdiv<<'\n';
}
}