Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

모듈식 지수 알고리즘을 구현하는 C++ 프로그램

<시간/>

Modular Exponentiation Algorithm을 구현하는 C++ 프로그램입니다.

알고리즘

Begin
   function modular():
   // Arguments: base, exp, mod.
   // Body of the function:
      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