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