快速幂

#include<bits/stdc++.h>
using namespace std; 
int x,p,k;
long long f(int a,int b){
    if(b==0) return 1%k;
    if(b==1) return a%k;
    long long ans=f(a,b/2)%k;
    ans*=ans%k;
    if(b%2==1)
    ans*=a%k;
    return ans%k;
    }
int main(){
    cin>>x>>p>>k;
    f(x,p);
    cout<<x<<"^"<<p<<" "<<"mod"<<" "<<k<<"="<<f(x,p)%k; 
    return 0;
} 

 

posted @ 2018-10-28 11:14  uncklesam7  阅读(106)  评论(0编辑  收藏  举报