Pagini recente » Cod sursa (job #2921756) | Cod sursa (job #976968) | Cod sursa (job #1290048) | Cod sursa (job #1514893) | Cod sursa (job #3150662)
#include <fstream>
#define pb push_back
#define int long long
using namespace std;
using pii = pair<int,int>;
ifstream cin("sumdiv.in");
ofstream cout("sumdiv.out");
const int m = 9901;
int a , b;
int fastpow( int x , int y )
{
if(!y) return 1LL;
if(y&1) return (x*fastpow(x,y-1))%m;
int p = fastpow(x,y/2);
return (p*p)%m;
}
signed main(){
cin >> a >> b;
b = b%(m-1);
if(!b)
{
cout << 1;
return 0;
}
int ans = 1;
for(int i = 2 ; a > 1 && i * i <= a ; i++)
{
if(a%i) continue;
int hm = 0,num;
while(a>1 && a%i==0)
{
++hm;
a/=i;
}
int val = hm*b%(m-1);
num = fastpow(i,val);
num = (num*i-1)%m;
ans = (ans*(num*fastpow(i-1,m-2))%m)%m;
}
if(a > 1)
{
int nr = fastpow(a,b);
nr = (nr*a-1)%m;
ans = (ans*(nr*fastpow(a-1,m-2))%m)%m;
}
while(ans<0) ans += m;
cout << ans;
return 0;
}