Pagini recente » Cod sursa (job #813490) | Cod sursa (job #378806) | Cod sursa (job #2239488) | Cod sursa (job #466166) | Cod sursa (job #1553439)
#include <fstream>
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
typedef long long i64;
const i64 mod= 9901;
i64 lgput( i64 x, i64 p ) {
i64 ans= 1;
for ( ; p>0; p/= 2 ) {
if ( p%2==1 ) {
ans= ans*x%mod;
}
x= x*x%mod;
}
return ans;
}
void solve( i64 &sol, i64 p, i64 e ) {
i64 aux= (lgput(p, e+1)-1+mod)%mod;
i64 invmod= lgput(p-1, mod-2);
aux= aux*invmod%mod;
sol= sol*aux%mod;
}
int main( ) {
i64 a, b, sol= 1;
fin>>a>>b;
for ( i64 i= 2; i*i<=a; ++i ) {
i64 e= 0;
for ( ; a%i==0; a/= i, ++e ) ;
solve(sol, i, e*b);
}
if ( a>1 ) {
if ( a%mod==1 ) {
sol= sol*(b+1)%mod;
} else {
solve(sol, a, b);
}
}
fout<<sol<<"\n";
return 0;
}