Lũy thừa

Xem dạng PDF

Gửi bài giải

Điểm: 0,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 64M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++

Đề bài: Cho hai số nguyên ~a~ và ~b~ (~1 \leq a \leq 10^{18}~, ~1 \leq b \leq 10^9~). Hãy tính ~a^b \bmod (10^9 + 7)~.

Debug code sau:

#include <bits/stdc++.h>
using namespace std;

const long long MOD = 1e9 + 7;

// calculate a * b % MOD
long long mul(long long a, long long b) {
    return a * b % MOD;
}

// calculate a^b % MOD 
long long Pow (long long a, long long b) {
    long long res = 1;
    for(; b; b/=2, a=mul(a, a)) if(b%2 == 1) res = mul(res, a);
    return res;
}


int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0); 

    long long a, b;
    cin >> a >> b;
    cout << Pow(a, b);

    return 0;
}

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.