Pagini recente » Cod sursa (job #2397134) | Cod sursa (job #1116762) | Cod sursa (job #1658704) | Cod sursa (job #608626) | Cod sursa (job #538661)
Cod sursa(job #538661)
#include<cstdio>
const int mod = 9901;
using namespace std;
int i , a , b , n , ans = 1;
int power (int a , int b){
int i , ans = 1 , n = a % mod;
for( i = 0 ; (1 << i) <= b ; ++i ) {
if ( b & (1 << i))
ans *= n , ans %= mod;
n = (n * n) % mod;
}
return ans;
}
int sum (int a , int b) {
if ( b == 1 ) return a % mod;
if ( b & 1 )
return (sum(a , b - 1) + power(a , b)) % mod;
return ((power(a , b / 2) + 1) * sum(a , b / 2)) % mod;
}
int main()
{
freopen("sumdiv.in","r",stdin);
freopen("sumdiv.out","w",stdout);
scanf("%d %d",&a,&b);
for( i = 2 ; i * i <= a ; ++i )
if ( a % i == 0 ) {
int cnt = 0;
for( ; a % i == 0 ; )
a /= i , ++ cnt;
ans = ans * (sum(i , cnt * b) + 1) % mod;
}
if ( a != 1 )
ans = ans * (sum ( a , b ) + 1) % mod;
printf("%d\n",ans);
return 0;
}