Pagini recente » Cod sursa (job #2610700) | Cod sursa (job #524661) | Cod sursa (job #1548024) | Cod sursa (job #1594635) | Cod sursa (job #2513596)
#include <bits/stdc++.h>
#define ff first
#define ss second
#define MOD 9901
#define pb push_back
using namespace std;
const string file = "sumdiv";
ifstream fin (file+".in");
ofstream fout (file+".out");
typedef long long ll;
typedef long double ld;
const ll INF = 9223372036854775807ll;
const int dx[] = {1, -1, 0, 0}, dy[] = {0, 0, 1, -1}, inf = 2147483647;
int inv(int x)
{
int Nr=1;
int b=MOD-2;
while(b)
{
while(b%2==0) x*=x, b/=2, x%=MOD;
if(b%2==1) b--, Nr*=x, Nr%=MOD;
}
return Nr%MOD;
}
int sumdiv(int x)
{
int S=0;
for(int i=1; i*i<=x ;++i)
if(x%i==0)
{
if(i*i==x) S+=i;
else S+=i, S+=x/i;
S%=MOD;
}
return S;
}
int power(int a, int b)
{
int Nr = 1;
while(b)
{
while(b%2==0 ) b/=2, a*=a, a%=MOD;
if(b%2) b--, Nr*=a, Nr%=MOD;
}
return Nr%MOD;
}
int main()
{
int A,B;
fin>>A>>B;
int SA= sumdiv(A) ;
int sol = (1+((((SA-1)*(power(A,B)-1))%MOD)*inv(A-1)))%MOD;
fout<<sol<<"\n";
return 0;
}