快速幂的模板 (数论)

来源:互联网 发布:东方财富 知乎 编辑:程序博客网 时间:2024/04/30 06:27
#include<bits/stdc++.h>using namespace std;long long quickmod(long long a,long long b,long long m){    long long ans = 1;    while(b)//用一个循环从右到左便利b的所有二进制位    {        if(b&1)//判断此时b[i]的二进制位是否为1        {            ans = (ans*a)%m;//乘到结果上,这里a是a^(2^i)%m        }        b/=2;        a = a*a%m;    }    return ans;}int main(){    long long  a,b,m;    while(~scanf("%lld%lld%lld",&a,&b,&m))    {        printf("%d\n",quickmod(a,b,m));    }}

0 0
原创粉丝点击