Pagini recente » Cod sursa (job #3121863) | Cod sursa (job #892862) | Cod sursa (job #2661944) | Cod sursa (job #1676390) | Cod sursa (job #3263804)
#include<fstream>
#define int long long
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=rez*aa%M;
aa=aa*aa%M;
}
return rez;
}
int32_t 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++;
y=Invers_Modular(d);
n=n*y%M;;
prod=prod*d%M;
}
//fout<<d<<" "<<exp<<endl;
nrdiv=nrdiv*(exp+1)%M;
prod--;
y=Invers_Modular(d-1);
prod=prod*y%M;
sumdiv=sumdiv*prod%M;
}
}
if(n>1){
nrdiv=nrdiv*2%M;
x=n*n-1;
y=Invers_Modular(n-1);
x=x*y%M;
sumdiv=sumdiv*x%M;
}
//fout<<endl;
fout<<nrdiv<<" "<<sumdiv<<'\n';
}
}
/*
#include<fstream>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int main(){
int q,n,exp,d,prod,nrdiv,sumdiv;
fin>>q;
while(q--){
fin>>n;
sumdiv=1;
nrdiv=1;
while(n>1){
exp=0;
prod=1;
while(n%d==0){
exp++;
n/=d;
prod*=d;
}
if(exp){
prod*=d;
nrdiv=nrdiv*(exp+1);
sumdiv=sumdiv*((prod-1)/(d-1));
}
d++;
//if(d*d>n)
// d=n;
}
fout<<nrdiv<<" "<<sumdiv<<'\n';
}
}
*/