a^b 带取膜

时间:2020-01-28 14:54:28   收藏:0   阅读:67

年后第一题。

没什么好说的, 这题的全部代码以后就是函数一样的存在。

#include<bits/stdc++.h>
using namespace std;

long long qpow(long long a, long long b, long long p)
{
    
    long long res = 1;
    for( ;b; b >>= 1, a = (a*a) % p)
        if(b&1) res = (res * a) % p;
    return res % p;
    
    //注意这个函数的理论基础
    // 1. 二进制分解, 速度基础
    // 2. 取膜下乘法加法的相关性质, 正确性基础
}

int main()
{
    
    long long a, b, p;
    cin >> a >> b >> p;
    cout << qpow(a, b, p) ;
    return 0;
    
}

原文:https://www.cnblogs.com/tztqwq/p/12238057.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!