题目描述

输入3个数a,b,c,求a^b mod c=?
输入描述
         三个数a,b,c
输出描述
         一个数,即a^b mod c 的答案。
样例输入
5 10 9
样例输出

4

基本的二进制快速幂,因为任意一个十进制数可以写成一个二进制权展开式,例如10=2^3+2^1

那么a^10=a^(2^3)*a^(2^1),使用位运算,可以使得代码十分简洁

#include <cstdio>
typedef long long LL;
LL fast_cover(LL a,LL b,LL c)
{
LL s=;
while(b)
{
if(b&) s=(s*a)%c;
a=(a*a)%c;
b>>=;
}
return s;
}
int main()
{
LL a,b,c;
while(~scanf("%lld%lld%lld",&a,&b,&c))
{
printf("%lld\n",fast_cover(a,b,c));
}
return ;
}

最新文章

  1. Atitit 在线支付系统功能设计原理与解决方案 与目录
  2. Blue tooth
  3. Xceed Ultimate Suite Xceed界面控件套包下载
  4. Linux 查看端口占用并杀掉
  5. 轻松学习Linux之VI编辑器的使用
  6. hdu 5094 Maze 状态压缩dp+广搜
  7. JSON和JSONP区别
  8. redis maxmemory设置
  9. fckeditor使用详解
  10. 关于MyEclipse 半天打不开的问题(工作区间损坏)--转
  11. JVM(一)JVM的基本结构
  12. charles抓取https请求包
  13. MacOS下好用的截图软件snip
  14. 常用命令和sql
  15. C#与C++数据类型比较及结构体转换[整理]
  16. TODO 软件测试68题
  17. UnicodeMath数学公式编码_翻译(Unicode Nearly Plain - Text Encoding of Mathematics Version 3)
  18. js 将内容复制到剪切板上
  19. ob_gzhandler — ob_start callback function to gzip output buffer
  20. maven下的jar项目打包的方法

热门文章

  1. ocpm
  2. ios11--UIButton
  3. Linux gadget驱动分析2------设备识别过程
  4. ALSA声卡驱动中的DAPM详解之二:widget-具备路径和电源管理信息的kcontrol
  5. [python基础] celery beat/task/flower解析
  6. 洛谷 P1083 [ NOIP 2012 ] 借教室 —— 线段树 / 二分差分数组
  7. openstack封装待调试
  8. vuejs 中如何优雅的获取 Input 值
  9. day-06 文件读写
  10. [转]Linux 正则表达式详解