题目描述

Calculate the power num a^(b^c) mod 1e9+7

输入

Multiple test cases,each case has three integers a,b and c . a,b,c is less than 1e9;

输出

Output the answer in each line

样例输入

2 3 2

样例输出

512



    需要用到费马小定理.如果p是质数,并且a不等于1且a不等于p,那么   a^(p-1)%p====1.
所以,a^1000000006   %  1000000007=1.

a^b^c%1000000007=a^(b^c % 1000000006) % 1000000007.
这是第一关.用费马小定理将问题化简一下.
第二关是快速幂,用递归实现特别清晰.

九指神丐洪七公曾经告诉郭靖:遇到敌人不要把注意力放在敌人出什么招数上,你只需要把这降龙十八掌一遍一遍的使将出来,必可立于不败之地.
管他是否多余,多用long long int.各种取余.
为了安全,可以适当的冗余.尤其是现在的大程序.



#include<iostream>
using namespace std;
long long int go(long long int a, long long int b, long long int c){
	if (b == 0)return 1;
	long long int t = go(a, b / 2, c);
	long long int p = (t*t) % c;
	if (b % 2 == 0)return p;
	return (p*a) % c;
}
int main(){
	//freopen("in.txt", "r", stdin);
	long long int a, b, c;
	while (cin >> a >> b >> c)
		cout << go(a, go(b, c, 1000000006), 1000000007)<<endl;
	return 0;
}

最新文章

  1. CORS简介
  2. ElasticSearch性能优化官方建议
  3. java之yield(),sleep(),wait()区别详解
  4. C#一维数组
  5. Maven实战(四)生命周期
  6. XML xsd
  7. 第二课 android项目结构
  8. asp.net Calendar 日历控件用法
  9. 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇08:弹幕系统》本系列完结
  10. onS 记录
  11. Java简单实现UDP和TCP
  12. 算法-java代码实现选择排序
  13. springboot情操陶冶-web配置(九)
  14. toLatin1 qt
  15. JDBC四种驱动程序
  16. System.Collections 学习
  17. JavaScript 删除数组中的对象
  18. 从数据库中取 datetime类型,界面展示 yyyy-MM-dd
  19. poj3254 Corn Fields
  20. IntelliJ IDEA 学习(三):IntelliJ IDEA 快捷键、配置优化

热门文章

  1. ORA-00020: No more process state objects available故障一例
  2. 【原】一张图片优化5K的带宽成本
  3. For循环案例---九九乘法表
  4. 探索 OpenStack 之(16):计量模块 Ceilometer 介绍及优化
  5. Caffe fine-tuning 微调网络
  6. hdu1251 统计难题
  7. 第16章 调色板管理器_16.4 一个DIB位图库的实现(1)
  8. Svn Patch 中文乱码
  9. MipMap
  10. jdk8-日期