Pagini recente » Cod sursa (job #294533) | Cod sursa (job #22331) | Cod sursa (job #2015957) | Monitorul de evaluare | Cod sursa (job #2471246)
#include<bits/stdc++.h>
#define MOD 9901
using namespace std;
int lgput(int a,int n)
{
int p=1;
while(n)
{
if(n%2==1)
p= p*a % MOD;
a=a*a % MOD;
n/=2;
}
return p;
}
int main()
{
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
int a,b;
long long s=1;
f>>a>>b;
for(int d=2;d<=a/d;d++)
{
if (a%d == 0)
{
int exponent = 0;
while (a%d == 0)
{
a /= d;
exponent++;
}
s *= (1LL*(lgput(d, exponent*b+1)-1))%MOD;
s *= (1LL*lgput(d-1, MOD-2))%MOD;
}
}
if (a != 1)
{
if ((a-1)%MOD == 0)
{
s *= (1LL*(b+1)%MOD);
s %= MOD;
}
else
{
a %= MOD;
s *= (1LL*(lgput(a, b+1)-1))%MOD;
s *= (1LL*lgput(a-1, MOD-2))%MOD;
}
}
while (s < 0)
s += MOD;
g<<s;
f.close();
g.close();
}