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