Big Mod algorithm simply use the modular arithmetic to find the value of-
Big Mod recursive approach-
Big Mod Iterative approach-
(a^p)%m.
Big Mod recursive approach-
int bigmod ( long long a, int p, int m )
{
if ( p == 0 )return 1; // If power is 0 ( a ^ 0 ), return 1
if ( p & 1 ) // If power is odd
{
return ( ( a % m ) * ( bigmod ( a, p - 1, m ) ) ) % m;
}
else
{
long long tmp = bigmod ( a, p / 2, m );
return ( tmp * tmp ) % m;
}
}
Big Mod Iterative approach-
long long bigmod ( long long a, long long p, long long m )
{
long long res = 1;
long long x = a;
while ( p )
{
if ( p & 1 ) //p is odd
{
res = ( res * x ) % m;
}
x = ( x * x ) % m;
p = p >> 1;
}
return res;
}
Thank you so much.
ReplyDeleteThank you so much brother.
ReplyDeletethank you bro.
ReplyDelete