FZU1752快速幂取模+乘法的加速
来源:互联网 发布:8051单片机引脚 编辑:程序博客网 时间:2024/05/17 04:28
Description
Given A,B,C, You should quickly calculate the result of A^B mod C. (1<=A,B,C<2^63).
Input
There are multiply testcases. Each testcase, there is one line contains three integers A, B and C, separated by a single space.
Output
For each testcase, output an integer, denotes the result of A^B mod C.
Sample Input
3 2 42 10 1000
Sample Output
124
由于a,b,c都比较大 简单的快速幂取模算法中 的乘法得到的结果 比较大可能超 long long 的范围
因此需要将乘法转换为二进制的加法
#include <iostream>#include <cstdio>using namespace std;typedef unsigned long long LL;//模拟乘法,把乘法变成二进制加法。LL mul(LL a,LL b,LL m)//二分 求 a*b%m;{ LL res=0,tmp=a%m; while(b) { if(b&1) if((res+=tmp)>=m) res-=m; if((tmp<<=1)>=m) tmp-=m; b>>=1; } return res;}LL quick_mod(LL a,LL b,LL m)//二分求a^b%m{ LL ans = 1; a%=m; while(b) { if(b%2==1) { ans=mul(ans,a,m); b--; } b/=2; a=mul(a,a,m); } return ans;}int main(){ LL a,b,m; while(cin>>a>>b>>m){ cout<<quick_mod(a,b,m)<<endl; } return 0;}
0 0
- FZU1752快速幂取模+乘法的加速
- FZU1752&1650--A^B mod C--快速幂取模
- c++的矩阵乘法加速trick
- 快速乘法
- 快速乘法
- 快速乘法
- 快速乘法
- 快速乘法
- 大数乘法求尾数的快速算法
- 矩阵的乘法和矩阵快速幂
- 利用移位运算 加速乘法
- 快速幂&&快速乘法
- 快速幂 快速乘法
- 快速幂+快速乘法
- 快速乘法-快速幂
- HDU 5187-zhx's contest(快速乘法+快速幂取模)
- fzu1752 A^BmodC
- fzu1752(坑!!!)
- UNIX下的Matlab的下载 与 安装 (ubuntu系统下可用)
- 8款超酷而实用的CSS3按钮动画
- ABAP程序中的统计求和
- 条件编译(#ifdef #else #endif #if)
- maximo基础信息配置
- FZU1752快速幂取模+乘法的加速
- struts2+spring+maven
- POJ 1742 Coins 多重背包题解
- 解决Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future:
- 高级语言
- 如何对SAP进行实施与控制
- 稀疏性是通往人工智能的一层阶梯
- mina2线程总结 .
- MySQL忘记密码恢复密码的实现方法