Pagini recente » Cod sursa (job #1127644) | Cod sursa (job #1471878) | Cod sursa (job #525034) | Cod sursa (job #1172691) | Cod sursa (job #794145)
Cod sursa(job #794145)
#include<cstdio>
#define MOD 9901
using namespace std;
long long A,B,S;
long long log_mult(long long base, long long pow)
{
long long sol=1;
while(pow)
{
if(pow&1)
sol=(sol*base)%MOD;
base=(base*base)%MOD;
pow>>=1;
}
return sol;
}
void Read()
{
freopen("sumadiv.in","r",stdin);
scanf("%lld%lld",&A,&B);
}
long long termen( long long aux, long long p, long long exp)
{
return ((((log_mult(aux/A,B)%MOD)*(p%MOD)-1)%MOD)/((p-1)%MOD))%MOD;
}
void TSFH()
{
long long aux,i,exp;
S=1;
for(i=2;i*i<=A;i++)
{
if(A%i)
continue;
aux=A;
exp=0;
while(A%i==0)
A/=i,exp++;
S=(S*termen(aux,i,exp))%MOD;
}
if(A!=1)
S=(S*(((log_mult(A,B+1)-1)%MOD)/((A-1)%MOD)))%MOD;
}
void Print()
{
freopen("sumadiv.out","w",stdout);
printf("%lld\n",S%MOD);
}
int main()
{
Read();
TSFH();
Print();
return 0;
}