Pagini recente » Cod sursa (job #3170070) | Cod sursa (job #1093331) | Cod sursa (job #1253337) | Cod sursa (job #825048) | Cod sursa (job #2696819)
#include <bits/stdc++.h>
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
const int mod=9901;
int a,b,ans;
int logpow (int x, int n)
{
if(n==0)return 1;
if(n==1)return x;
unsigned long long y;
y=logpow(x,n/2);
y=(y*y)%mod;
if(n%2==1)y=(y*x)%mod;
return y;
}
int main ()
{
int ans = 1;
f>>a>>b;
if (a==0&&b==0)
{
g<<1;
return 0;
}
if(a==0)
{
g<<0;
return 0;
}
if(b==0)
{
g<<1;
return 0;
}
for (int i=2;i*i<=a;i++)
{
if (a%i==0)
{
int e=0;
while(a%i==0)
{
e++;
a/=i;
}
e*=b;
if (i%mod==1)
{
ans*=(e + 1);
ans%=mod;
}
else
ans =1ll*ans*(logpow(i%mod, e+1)-1+mod)*logpow((i - 1)% mod, mod-2)%mod;
}
}
if (a>1)
{
if (a%mod==1)
{
ans*=(b+1);
ans%=mod;
}
else
ans = 1ll * ans * (logpow(a % mod, b + 1) - 1 + mod) * logpow((a - 1) % mod, mod - 2) % mod;
}
g<<ans;
return 0;
}