快速幂取余
2015-06-28 10:08
225 查看
#include<iostream> #include<algorithm> #include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.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--;//把该为变0 } b/=2; a = a*a%m; } return ans; } int main() { int m,a,b; while(scanf("%d%d%d",&a,&b,&m)!=EOF) { long long int ans = quickmod(a,b,m); printf("%d的%d次方mod%d的结果为:%d\n",a,b,m,ans); } return 0; }
相关文章推荐
- jsp显示java后台的异常
- 【Hadoop】7、Hadoop1.2.1基于虚拟机中的CentOS6.6的Hadoop单节点安装
- 面试题10:二进制中1的个数
- .net 开发必备小抄(电子书)
- UVa - 1622 - Robot
- 异常处理的随笔
- UVa - 1622 - Robot
- STM32关于uversion版本更换和MCU型号更换编译出错的解决办法、记录。
- 大数据算法学习笔记(1):定义与特点
- 如果分配给命令的连接位于本地挂起事务中,ExecuteNonQuery 要求命令拥有事务。命令的 Transaction 属性尚未初始化
- PL/SQL异常处理方法
- Web.Config文件中添加数据库配置文件
- android 自定义自定义圆角dialog,消除黑色window背景
- C#索引属性用法实例分析
- Use Cursor
- 设计模式之访问者模式
- Android 通过WebService进行网络编程,使用工具类轻松实现
- Hibernate get和load区别
- 欧拉函数代码实现
- 如果分配给命令的连接位于本地挂起事务中,ExecuteReader 要求命令拥有事务。命令的 Transaction 属性尚未初始化