Pagini recente » Cod sursa (job #247362) | Cod sursa (job #2143758) | Cod sursa (job #2655473) | Cod sursa (job #951373) | Cod sursa (job #2952257)
#include<bits/stdc++.h>
#define int long long
#define MOD 9901
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
int k;
vector< pair<int,int> >v;
int pw(int a, int b)
{
int p=1;
while(b!=0)
{
if(b%2==1)
p=(1LL*p*a)%MOD;
a=(1LL*a*a)%MOD;
b/=2;
}
return p;
}
signed main()
{
int i,e=0,a,b,ans=1;
f>>a>>b;
while(a%2==0)
e++,a/=2;
if(e!=0)
v.push_back({2,e});
for(i=3; i*i<=a; i+=2)
{
e=0;
while(a%i==0)
e++,a/=i;
if(e!=0)
v.push_back({i,e});
}
if(a!=1)
v.push_back({a,1});
for(auto it:v)
{
int a=it.first;
int bb=1LL*it.second*b;
if(bb!=1)
{
///a^(b+1)-1/a-1
int val=pw(a,bb+1)%MOD;
val--;
if(val<0)
val+=MOD;
val=(val*pw(a-1,MOD-2))%MOD;
ans=(1LL*ans*val)%MOD;
}
else
ans=(1LL*ans*a);
}
g<<ans;
return 0;
}