加载中...

信息奥赛题单|快速幂


快速幂

题单 🧑🏻‍💻

题目来源 题目名称 题目链接 备注 难度
洛谷 - P1226 【模板】快速幂 链接🔗 模版题 🟢

题解 🚀

快速幂

题目信息 📚

【题目名称】洛谷 P1226 - 【模板】快速幂
【题目描述】

给你三个整数 $a,b,p$,求 $a^b \bmod p$。

【输入】

输入只有一行三个整数,分别代表 $a,b,p$。

【输出】

输出一行一个字符串 a^b mod p=s,其中 $a,b,p$ 分别为题目给定的值, $s$ 为运算结果。

【输入样例】
2 10 9
【输出样例】
2^10 mod 9=7
【数据范围】

对于 $100%$ 的数据,保证 $0\le a,b < 2^{31}$,$a+b>0$,$2 \leq p \lt 2^{31}$。

【原题链接】

https://www.luogu.com.cn/problem/P1226


题目解析 🍉

【题目分析】

快速幂

【 C++ 代码】
#include<bits/stdc++.h>

using namespace std;
typedef long long LL;

// 快速幂模版
LL fast_power(LL a, LL b, LL p) {
    LL res = 1;
    while (b) {
        if (b & 1) res = res * a % p;
        b >>= 1;
        a = a * a % p;
    }
    return res;
}

int main() {
    LL a, b, p;
    cin >> a >> b >> p;
    cout << a << "^" << b << " mod " << p << "=" << fast_power(a, b, p) << endl;

    return 0;
}


文章作者: Rickyの水果摊
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Rickyの水果摊 !
  目录