#include<bits/stdc++.h>
using namespace std;
long long x,y,z;
long long f(long long y){
if(y==0){
return 1;
}
else{
if(y%2==1){
return f(y/2)*f(y/2)%z*x%z;
}
else{
return f(y/2)*f(y/2)%z;
}
}
}
int main(){
cin>>x>>y>>z;
long long ans=f(y);
cout<<ans;
}
2 个赞
a^b%c
时间:0.2s 空间:32M
题目描述:
求ab%c
输入格式:
输入三个整数a,b,c
输出格式:
输出一个整数
样例输入:
2 10000 12345
样例输出:
10786
约定:
0<=a,b<=10^9,1<=c<=10^9
2 个赞
不用int_128也可以:
long long mi(long long x){
if(x==0)
return 1;
long long ss=mi(x/2);
if(x%2==1)
return ss%m*ss%m*n%m;
return ss%m*ss%m;
}
1 个赞
还是wa90
3 个赞
你的WA90分原因在于:漏了c=1的情况
只要把return 1;改成return 1%z;就能通过这道题。
我早就改好了