Pagini recente » Cod sursa (job #149954) | Cod sursa (job #2723657) | Cod sursa (job #638458) | Cod sursa (job #3156597) | Cod sursa (job #2338105)
#include <bits/stdc++.h>
using namespace std ;
ifstream in ("sumdiv.in") ;
ofstream out ("sumdiv.out") ;
int64_t s = 1 , p = 1 , a , b ;
const int MOD = 9901 ;
int64_t lgpow ( int64_t x , int64_t y )
{
if ( y == 1 ) return x ;
if ( y % 2 ) return ( x * lgpow ( ( x * x ) % MOD , y >> 1 ) ) % MOD ;
else return lgpow ( ( x * x ) % MOD , y >> 1 ) ;
}
int zoli ( )
{
for ( int i = 2 ; a != 1 ; i ++ )
{
if ( !( a % i ) )
{
int prod = lgpow( i , b ) % MOD ;
while ( !( a % i ) )
{
a /= i ;
s = s * prod % MOD ;
}
s = ( s * i - 1 ) % MOD ;
p *= i - 1 ;
p %= MOD ;
}
}
return s * lgpow( p , MOD - 2 ) % MOD ;
}
int main ()
{
cin >> a >> b ;
if ( !a ) return cout << 0 , 0 ;
if ( !b ) return cout << 1 , 0 ;
return cout << zoli( ) , 0 ;
}