P1226 【模板】快速幂||取余运算

https://www.luogu.org/problemnew/show/P1226

模板题 直接上代码吧

#include<bits/stdc++.h>

using namespace std;

int main()
{
    long long int  c,b,p,k,base,ans=1;
    cin>>b>>p>>k;
    c=p,base=b;
    while(p>0)
    {
        if(p&1)
        {
            ans*=base;
            ans%=k;
        }
        base*=base;
        base%=k;
        p>>=1;
    }
    ans%=k;
    printf("%lld^%lld mod %lld=%lld",b,c,k,ans);
 } 

最后结束循环之后一定要加上这句 ans%=k; 不然输入如果是 1 0 1时就会报错 算是一个坑点

原文地址:https://www.cnblogs.com/dyhaohaoxuexi/p/10692518.html