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

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

题目描述



给你三个整数  a,b,p,求 a^b modp。


输入格式



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


输出格式



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


输入输出样例



输入

2 10 9


输出  

2^10 mod 9=7


快速幂

快速幂原理. 快速幂算法的核心思想就是每一步都把指数分成两半,而相应的底数做平方运算。. 这样不仅能把非常大的指数给不断变小,所需要执行的循环次数也变小,而最后表示的结果却一直不会变。. 让我们先来看一个简单的例子:. 3^10=3*3*3*3*3*3*3*3*3*3. 3^10= (3*3)* (3*3)* (3*3)* (3*3)* (3*3) 3^10= (3*3)^5. 3^10=9^5. 9^5=(9^4)*(9^1).


题意,具体实现上代码吗,模板题;

#include<bits/stdc++.h>
using namespace std;
long long b,a,p,k,ans=1,c;
int main()
{
    scanf("%d%d%d",&b,&p,&k);
    a=b;c=p;
    while(p>0)
    {
        if(p&1)
            ans=ans*b%k;
        b=b*b%k;
        p=p>>1;
    }
    ans %= k;
    printf("%d^%d mod %d=%d",a,c,k,ans);
}


相关文章
|
20天前
整数的阶乘(英语:factorial)是所有小于及等于
整数的阶乘(英语:factorial)是所有小于及等于
|
19天前
|
C语言
C语言之九九乘法表||素数||最小公倍数
C语言之九九乘法表||素数||最小公倍数
22 0
|
20天前
分解质因数答疑 为什么只需要枚举到根号N 为什么n % i == 0就是质数
分解质因数答疑 为什么只需要枚举到根号N 为什么n % i == 0就是质数
35 0
|
20天前
leetcode-372:超级次方(快速幂的实现以及取余的规则和推导)
leetcode-372:超级次方(快速幂的实现以及取余的规则和推导)
24 0
|
10月前
判断一个数字是否是回文数||取整与取余
判断一个数字是否是回文数||取整与取余
61 0
|
12月前
|
算法
不使用+或-运算符,计算两数之和
不使用+或-运算符,计算两数之和
49 0
【模板】快速幂||取余运算
【模板】快速幂||取余运算
69 0
求实数的整数次幂(循环版)(高效)(位运算解题)
说明:参数 x 为底数,n 为指数。若参数正确,则函数值为 x 的 n 次幂。若参数不正确(当底数为 0 且指数为 0 或负数时无意义),则报告错误,函数值为0。// 这个位运算是大部分都不熟悉也不敢用的东西,但是确实是编程里面的一个非常重要的工具。请编写函数,用循环语句以最快的方法求任意实数的任意整数次幂。要求:不得调用 pow 函数,不得使用递归方法。指数 二进制 公式。
149 0
求实数的整数次幂(循环版)(高效)(位运算解题)
判断是否为2的次幂
判断是否为2的次幂
75 0
力扣题 两数相除:画图解析 采用递归计算除法(不使用乘法、除法和 mod 运算符)
这是力扣上的一道题目,难度为中等,两数相除:给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。
力扣题 两数相除:画图解析 采用递归计算除法(不使用乘法、除法和 mod 运算符)

热门文章

最新文章