Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ triển khai thuật toán lũy thừa modulo


Đây là chương trình C++ triển khai thuật toán lũy thừa modulo (Modular Exponentiation Algorithm).

Thuật toán

Begin    hàm modular():    // Tham số: cơ số, số mũ, modulo.    // Thân hàm:       khởi tạo 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

Ví dụ

#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; }

Kết quả

Enter Base : 7 Enter Exponent: 6 Enter Modular Value: 26 25