Pagini recente » Cod sursa (job #3345723) | Cod sursa (job #3347554) | Cod sursa (job #3311768) | Cod sursa (job #3322717) | Cod sursa (job #3323028)
#include <bits/stdc++.h>
using namespace std;
const int MOD = 9901;
int pow_mod( int p, int e ) {
int rez = 1;
while ( e > 0 ) {
if ( e % 2 == 1 )
rez = ((long long)rez * p) % MOD;
p = ((long long)p * p) % MOD;
e /= 2;
}
return rez;
}
int fact( int p, int e ) {
if ( p % MOD == 0 )
return 1;
if ( p % MOD == 1 )
return (e + 1) % MOD;
return (pow_mod( p, e + 1 ) + MOD - 1) * pow_mod( p - 1, MOD - 2 ) % MOD;
}
int main() {
FILE *fin, *fout;
int a, b, ans, i, e;
fin = fopen( "sumdiv.in", "r" );
fscanf( fin, "%d%d", &a, &b );
fclose( fin );
ans = 1;
for ( i = 2; i * i <= a; i++ ) {
if ( a % i == 0 ) {
e = 0;
while ( a % i == 0 ) {
e++;
a /= i;
}
ans = ans * fact( i, e * b ) % MOD;
}
}
if ( a > 1 )
ans = ans * fact( a, b ) % MOD;
fout = fopen( "sumdiv.out", "w" );
fprintf( fout, "%d\n", ans );
fclose( fout );
return 0;
}