题目描述

给你三个正整数,a,m,b,你需要求:a^b mod m

输入输出格式

输入格式:

一行三个整数,a,m,b

对于全部数据:

1≤a≤10^9
1≤b≤10^{20000000}
1≤m≤10^6

输出格式:

一个整数表示答案

输入输出样例

输入样例#1:

2 7 4

输出样例#1:

2

输入样例#2:

998244353 12345 98765472103312450233333333333

输出样例#2:

5333

思路:指数最大到 20000000,没有超出 long long 的范围,可以直接利用十进制快速幂来做

源代码

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#include<bitset>
#define EPS 1e-9
#define PI acos(-1.0)
#define INF 0x3f3f3f3f
#define LL long long
#define Pair pair<int,int>
const int MOD = 31011;
const int N = 20000000+5;
const int dx[] = {0,0,-1,1,-1,-1,1,1};
const int dy[] = {-1,1,0,0,-1,1,-1,1};
using namespace std;char b[N];
LL tenthPow(LL a,LL len,LL mod) {LL res=1;while(len>=0){LL cnt=b[len]-'0';LL cur=a;for(int i=1; i<=cnt; i++)res=res*a%mod;for(int i=1; i<10; i++)cur=cur*a%mod;//进位a=cur;res%=mod;len--;}return res;
}
int main(){LL a,mod;scanf("%lld",&a);scanf("%lld",&mod);scanf("%s",b);//字符串读入指数LL len=strlen(b);LL res=tenthPow(a,len-1,mod);printf("%lld\n",res);return 0;
}

欧拉定理(洛谷-P5091)(十进制快速幂实现)相关推荐

  1. 洛谷 | P1226 【快速幂】

    快速幂 题目链接 题目描述 输入b,p,k的值,求b^p mod k的值.其中b,p,k*k为长整型数. 输入输出格式 时空限制 时间:1000ms 空间:128MB 代码 #include < ...

  2. 10.02 T3 打表找递推式+十进制快速幂 九校联考凉心模拟DAY1T1

    题目背景 金企鹅同学非常擅长用1*2的多米诺骨牌覆盖棋盘的题.有一天,正 在背四六级单词的他忽然想:既然两个格子的积木叫"多米诺(domino)",那 么三个格子的的积木一定叫&q ...

  3. (十进制快速幂+矩阵优化)BZOJ 3240 3240: [Noi2013]矩阵游戏

    题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=3240 3240: [Noi2013]矩阵游戏 Time Limit: 10 Sec  M ...

  4. 欧拉定理(洛谷-P5091)(扩展欧拉定理实现)

    题目描述 给你三个正整数,a,m,b,你需要求:a^b mod m 输入输出格式 输入格式: 一行三个整数,a,m,b 对于全部数据: 1≤a≤10^9 1≤b≤10^{20000000} 1≤m≤1 ...

  5. 洛谷 P5091 【模板】欧拉定理

    题目 题目描述 给你三个正整数,a,m,ba,m,b,你需要求: a^b \bmod mabmodm 输入格式 一行三个整数,a,m,ba,m,b 输出格式 一个整数表示答案 输入输出样例 输入 #1 ...

  6. 快速幂、快速乘、矩阵快速幂

    文章目录 一 快速幂 模板 模板例题 二 快速乘 模板 三 矩阵快速幂 例题 模板题 应用题1 应用题2 一 快速幂 目的:当我们在求f(x) = a ^ x % mod时,f(x)的结果会呈指数型增 ...

  7. 快速幂(二进制,十进制)

    矩阵快速幂: #include<iostream> #include<cstdio> #include<cstring>using namespace std; t ...

  8. 洛谷 1226 取余运算||快速幂

    洛谷  取余运算||快速幂 1226 其实比起楼下的大佬们,我主要是多了些位运算和讲解. 想法一: 直接输出 pow(b,q)%k 嗯~~勇气可嘉,但是看一眼数据范围(长整型)就会意识到,这个方法也许 ...

  9. 快速幂||取余运算【模板】(洛谷P1226题题解,Java语言描述)

    题目要求 P1226题目链接 分析 标准的快速幂取模算法板子,之前这个算法我在这篇文章中讲过了:<快速幂算法详解&&快速幂取模算法详解>. 这里选择使用比较简单的API实现 ...

最新文章

  1. acegi,IBM的Acegi Security System(1)
  2. Ubuntu下常用命令
  3. LeetCode LCP 06. 拿硬币
  4. 【性能测试】性能需求挖掘、性能方案制定及压测场景设计之疑惑与思考(一)
  5. sql 时态表的意义_SQL Server中的时态表
  6. 使用HTML和CSS格式化DBMail
  7. Flutter代码锦囊---自定义曲线裁剪
  8. RuntimeWarning: coroutine ‘ClientResponse.text‘ was never awaited self._context.run(self._callback)
  9. django 项目中使用项目环境制作脚本 通过终端命令运行脚本文件(management/commands)...
  10. 查找Linux系统中某个软件是否安装/存在
  11. 【转】BAT机器学习面试1000题系列
  12. SAP错误消息调试之七种武器:让所有的错误消息都能被定位
  13. java encapsulation_Java Encapsulation vs Abstraction
  14. 7.11 不区分大小写的匹配
  15. 使用Java处理键盘输入(DTMF)
  16. sublime text3 字体样式_Sublime Text3 Github最受欢迎主题字体推荐!
  17. 图解TCP/IP网络知识轻松入门 读书笔记(五)
  18. 利用python处理pdf文本_Python用于NLP :处理文本和PDF文件
  19. 昆石VOS3000_2.1.4.0安装脚本
  20. 博达路由器如何配置互联网ip_博达路由器操作命令

热门文章

  1. (2) 第二章 WCF服务与数据契约 服务契约详解(三)- [ServiceContract]特性
  2. LwIP之ARP协议
  3. python迭代法求平方根_1021: 迭代法求平方根
  4. 最近,我和隐私计算干上了。
  5. 在外企和大厂都实习过是一种什么体验?
  6. 快领!了不起的程序员专属红包封面!!
  7. 漫画:当程序员有了下一代.....
  8. JEECG移动方案 - 应用系统转换移动应用的中间件实现方案
  9. SAP 函数积累(转
  10. 为什么谷歌要执行严格的代码编写规范