球球各位dalao解答
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
typedef long long ll;
ll ba, to, mo;
ll fast_pow(ll base, ll top, ll mod){
ll res;
base %= mod;
while(top){
if(top & 1)
res = (res * base) % mod;
top = top >> 1;
base = (base * base) % mod;
}
return res % mod;
}
int main(){
cin >> ba >> to >> mo;
ll ans = fast_pow(ba, to, mo);
printf("%d^%d mod %d=%d",ba ,to, mo, ans%mo);
return 0;
}
只过了两个点,不知道为什么。。(我在本地跑的几个答案是对的 0.0)