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

โปรแกรม C++ ใช้งานอัลกอริทึม Modular Exponentiation


การใช้งานอัลกอริทึม Modular Exponentiation

นี่คือโปรแกรม C++ ที่นำอัลกอริทึม Modular Exponentiation มาใช้งาน

อัลกอริทึม

Begin
    ฟังก์ชัน modular():
    พารามิเตอร์: base, exp, mod
    เริ่มต้น res = 1
    while (exp > 0)
        if (exp mod 2 == 1) res = (res * base) % mod
        exp = exp left shift 1 (exp >>= 1)
        base = (base * base) % mod
    คืนค่า 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