Pagini recente » Cod sursa (job #2627666) | Cod sursa (job #1243311) | Cod sursa (job #2463832) | Cod sursa (job #988474) | Cod sursa (job #688019)
Cod sursa(job #688019)
#include<fstream>
#define mod 9901
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
int A,B,a1,a2,exp,;
inline int putere(int n,int p){
int r=1;
while(p!=0){
if(p%2==1)
r=(r*n)%mod;
n=(n*n)%mod;
p/=2;
}
return r;
}
void sumaDiv(long long A,long long B){
int sum=1;
for(int i=2;i<=A;i++){
if(A%i==0){
exp=0;
while(A%i==0){
A/=i;
exp++;
}
exp*=B;
if(i%mod==1)
sum=sum*(exp+1)%mod;
else{
a1=(putere(i,exp+1)-1)%mod;
a2=(putere(i-1,mod-2))%mod;
sum=(sum*a1*a2)%mod;
}
}
}
if(A>1){
if(A%mod==1)
sum=(sum*(B%mod+1))%mod;
else{
a1=(putere(A,B+1))%mod;
a2=(putere(A-1,mod-2))%mod;
sum=((((sum)%mod)*a1)%mod*a2)%mod;
}
}
g<<sum<<"\n";
}
int main (){
f>>A>>B;
sumaDiv(A,B);
return 0;
}