Pagini recente » Cod sursa (job #1691380) | Cod sursa (job #1477629) | Cod sursa (job #1825684) | Cod sursa (job #2962063) | Cod sursa (job #2338106)
#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 ()
{
in >> a >> b ;
if ( !a ) return out << 0 , 0 ;
if ( !b ) return out << 1 , 0 ;
return out << zoli( ) , 0 ;
}