这是一个实现模块化幂运算算法的C ++程序。
Begin function modular(): //参数:base,exp,mod。 //函数主体: initialize res = 1 while (exp > 0) if (exp mod 2 == 1) res= (res * base) % mod exp = exp left shift 1 base = (base * base) % mod return res. End
#include <iostream> using namespace std; long long modular(long long base, long long exp, int mod) { long long res = 1; while (exp > 0) { if (exp % 2 == 1) res= (res * base) % mod; exp = exp >> 1; base = (base * base) % mod; } return res; } int main() { long long b, e; int mod; cout<<"Enter Base : "; cin>>b; cout<<"Enter Exponent: "; cin>>e; cout<<"Enter Modular Value: "; cin>>mod; cout<<modular(b, e , mod); return 0; }
输出结果
Enter Base : 7 Enter Exponent: 6 Enter Modular Value: 26 25