Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ เพื่อใช้อัลกอริทึมการยกกำลังแบบโมดูลาร์


นี่คือโปรแกรม 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