快速冪

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
long long b,p,k,ans;
long long qpow(long long n,long long x,long long mod)
{
    if(x==0) return 1;//遞歸出口:0次方爲1
    long long res=qpow(n*n%mod,x/2,mod);//遞歸
    if(x&1) res=res*n%mod;//若x爲奇數那麼把返回值乘上n
    return res;
}
int main()
{
    scanf("%lld%lld%lld",&b,&p,&k);
    ans=qpow(b,p,k);
    printf("%lld^%lld mod %lld=%lld",b,p,k,ans);
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章