Pagini recente » Cod sursa (job #1951150) | Cod sursa (job #948683) | Cod sursa (job #1376434) | Cod sursa (job #1757126) | Cod sursa (job #917807)
Cod sursa(job #917807)
#include<stdio.h>
#include<vector>
#include<algorithm>
#define mod 9901
#include<math.h>
using namespace std;
typedef long long i64;
i64 power(i64 a,i64 n,i64 k)
{
i64 r=1;
for(r=1,a=a%k;n;n>>=1)
{
if(n&1)
r=(r*a)%k;
a=(a*a)%k;
}
return r;
}
i64 invmod(i64 x)
{
return power(x,mod-2,mod);
}
int main()
{
freopen("sumdiv.in","r",stdin);
freopen("sumdiv.out","w",stdout);
i64 lim,e,d,a,b,rez=1,r=1,x,y;
scanf("%lld%lld",&a,&b);
if(a==0)
{
printf("0\n");
return 0;
}
lim=(i64)sqrt(1.0*a);
for(d=2;d<=lim && a>1;d++)
if(a%d==0)
{
e=0;
while(a%d==0) {a=a/d;e+=b;}
x=(power(d,e+1,mod)+mod-1)%mod;
y=(d-1)%mod;
r=(x*invmod(y))%mod;
rez=(rez*r)%mod;
}
if(a>1)
{
d=a;e=1;
x=(power(d,e+1,mod)+mod-1)%mod;
y=(d-1)%mod;
r=(x*invmod(y))%mod;
rez=(rez*r)%mod;
}
printf("%lld\n",rez);
return 0;
}