Update modular_exponentiation.cpp

This commit is contained in:
Shri Prakash Bajpai 2020-10-21 16:09:50 +05:30 committed by GitHub
parent d8f2001fd3
commit af3fadc800
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2,7 +2,7 @@
* @file
* @brief C++ Program for Modular Exponentiation Iteratively.
* Calculate the value of an integer a raised to an integer exponent b
* under modulo c.
* under modulo c.
* @note The time complexity of this approach is O(log b).
*
* Example:
@ -15,15 +15,20 @@
* We can also verify the result as 4^3 is 64 and 64 modulo 5 is 4
*/
#include <iostream>
#include <iostream> /// for io operations
/**
* @namespace math
* @brief Mathematical algorithms
*/
namespace math {
/**
* @brief This function calculates a raised to exponent b
* under modulo c using modular exponentiation.
* under modulo c using modular exponentiation
* @param a integer base
* @param b unsigned integer exponent
* @param c integer modulo
* @return a raised to power b modulo c.
* @return a raised to power b modulo c
*/
int power(int a, unsigned int b, int c)
{
@ -51,7 +56,8 @@ int power(int a, unsigned int b, int c)
}
return ans;
}
}
} // namespace math
/**
* @brief Main function
@ -65,7 +71,7 @@ int main()
int m = 13;
std::cout << "The value of "<<num1<<" raised to exponent "<<num2<<
" under modulo "<<m<<" is " << power(num1, num2, m);
" under modulo "<<m<<" is " << math::power(num1, num2, m);
/// std::cout << "The value of "<<num1<<" raised to exponent "<<num2<<"
/// " under modulo "<<m<<" is " << power(num1, num2, m);