Pagini recente » Cod sursa (job #3279761) | Cod sursa (job #1308805) | Cod sursa (job #451082) | Cod sursa (job #588595) | Cod sursa (job #2338108)
#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 cnt = 0 ;
while ( !( a % i ) )
{
cnt ++ ;
a /= i ;
}
s = s * ( lgpow( i , 1LL * ( b * cnt + 1 ) ) - 1 + MOD ) % 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 ;
out << zoli( ) ;
return 0 ;
}