Luogu P1226 取余运算||快速幂 (思路待补)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Luogu P1226 取余运算||快速幂 (思路待补)相关的知识,希望对你有一定的参考价值。

题目描述

输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。

输入输出格式

输入格式:

三个整数b,p,k.

输出格式:

输出“b^p mod k=s”

s为运算结果

输入输出样例

输入样例#1: 
2 10 9
输出样例#1: 
2^10 mod 9=7

#include <iostream>
#include <cstdio>
using namespace std;
long long pow1(long long b,long long p,long long k){    
    long long r=1;
    while(p){
        if(p&1)    r=r*b%k;                                //p&1即可单独取出最后一位1 
        b=b*b%k;
        p>>=1;                                            //将p右移一位,相当于p/=2,但是貌似更快? 
    }
    return r%k;
}
int main(){
    long long b,p,k;                                    //b为底数,p为指数,k为取模数                                     
    cin>>b>>p>>k;
    cout<<b<<"^"<<p<<" mod "<<k<<"="<<pow1(b,p,k);
    return 0;                                            //一开始又没有写return,想想noip 
}

 

以上是关于Luogu P1226 取余运算||快速幂 (思路待补)的主要内容,如果未能解决你的问题,请参考以下文章

Luogu P1226 取余运算||快速幂(数论,分治)

Luogu P1226 取余运算||快速幂 (思路待补)

洛谷 P1226 取余运算||快速幂 题解

洛谷——P1226 取余运算||快速幂

[每日一题2020.06.15]P1226 模板快速幂取余运算

小肥杨训练营——快速幂模板