Pagini recente » Cod sursa (job #40313) | Cod sursa (job #2700558) | Cod sursa (job #2174190) | Cod sursa (job #225924) | Cod sursa (job #758493)
Cod sursa(job #758493)
#include <fstream>
using namespace std;
long long S=1,n,b;
const long long mod=9901;
ifstream in("sumdiv.in");
ofstream out("sumdiv.out");
inline long long pow(long long x,long long n)
{
if (!n)
return 1;
if (n==1)
return x%mod;
return pow(x*x%mod,n>>1)*pow(x,n&1)%mod;
}
inline void add(long long x,long long n)
{
if (!x)
{
S=S*pow(mod-1,mod-1)%mod;
return;
}
if (x == 1)
{
S=S*(n+1)%mod;
return;
}
S = S*(pow(x,n+1)+mod-1)%mod*pow((x+mod-1)%mod,mod-2)%mod;
}
int main()
{
long long i,p;
in >> n >> b;
for (i = 2;i*i<=n;i++)
if (n % i == 0)
{
for (p = 0; n%i==0; p++,n/=i);
add(i%mod,b*p);
}
if (n!=1)
add(n%mod,b);
out<<S<<"\n";
return 0;
}