被$b=0,p=1$卡了,以后快速幂得注意了,返回ans时也要模p
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #include <iostream> using namespace std; typedef long long ll;
int qmi(int a,int b,int p){ int ans=1; while(b){ if(b&1) ans=ans*1ll*a%p; b>>=1; a=a*1ll*a%p; } return ans%p; }
int main(){ int a,b,p; scanf("%d%d%d",&a,&b,&p); printf("%d\n",qmi(a,b,p)); return 0; }
|