实现模块化幂算法的C ++程序

这是一个实现模块化幂运算算法的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

以上是 实现模块化幂算法的C ++程序 的全部内容, 来源链接: utcz.com/z/354343.html

回到顶部