Pagini recente » Cod sursa (job #521004) | Cod sursa (job #2121874) | Cod sursa (job #2005758) | Cod sursa (job #361383) | Cod sursa (job #981689)
Cod sursa(job #981689)
#include<fstream>
#define IN "sumdiv.in"
#define OUT "sumdiv.out"
#define MODULO 9901
using namespace std;
ifstream in(IN);
ofstream out(OUT);
int A, B;
long long sDiv=1, p1, p2;
int pow(int n, int p)
{
int sol=1;
while(p)
{
if(p%2==1)
sol = (1LL* sol * n ) % MODULO;
n = (1LL* n * n ) % MODULO;
p/=2;
}
return sol;
}
int main()
{
in>>A>>B;
for(int i=2; i*i <= A; i++)
{
if(A%i)
continue;
int p=0;
while(A%i==0)
p++,
A/=i;
p*=B;
p1=(pow(i,p+1)-1+MODULO)%MODULO;
p2=pow(i-1,MODULO-2)%MODULO;
sDiv = ( ( ( sDiv * p1 ) % MODULO ) * p2 ) % MODULO;
}
if(A>1)
sDiv=(sDiv*(pow(A,B+1)-1+MODULO)%MODULO*pow(A-1,MODULO-2))%MODULO;
out<<sDiv<<'\n';
in.close();
out.close();
return 0;
}