题目描述

给你三个正整数,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

思路:扩展欧拉定理模版题

源代码

#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;LL Euler(LL x) {LL res=x;for(LL i=2; i<(LL)sqrt(x*1.0)+1; i++) {if(x%i==0) {res=res/i*(i-1);while(x%i==0)/// 保证i一定是素数x/=i;}}if(x>1)res=res/x*(x-1);return res;
}int main() {LL a,mod;scanf("%lld%lld",&a,&mod);getchar();LL b=0;LL phi=Euler(mod);char ch=getchar();bool flag=false;while(isdigit(ch)){b=b*10+(ch-'0');if(b>=phi){//扩展欧拉定理flag=true;b%=phi;}ch=getchar();}if(flag)//b>=phi时b+=phi;LL res=1;for(int i=20;i>=0;--i){//快速幂res=res*res%mod;if(b&(1<<i))res=res*a%mod;}printf("%lld\n",res);return 0;
}

欧拉定理(洛谷-P5091)(扩展欧拉定理实现)相关推荐

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

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

  2. 欧拉定理(洛谷-P5091)(十进制快速幂实现)

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

  3. 《夜深人静写算法》数论篇 - (17) 扩展欧拉定理

    文章目录 前言 一.扩展欧拉定理 1.欧拉定理的局限性 2.扩展欧拉定理定义 3.扩展欧拉定理证明 1)引理介绍 2)定理证明 二.扩展欧拉定理的应用 1.配合大数取余求解 2.配合 DFS 递归求解 ...

  4. 欧拉定理及扩展欧拉定理

    欧拉定理及扩展欧拉定理 欧拉定理:若a,ma,ma,m互质则有:aφ(m)≡1(modm)a^{\varphi(m)}\equiv 1\pmod{m}aφ(m)≡1(modm) 当mmm为素数ppp时 ...

  5. 【bzoj3884】上帝与集合的正确用法 扩展欧拉定理

    题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做"元". 第二天, 上帝创造了一个新的元素,称作"α&quo ...

  6. 【SHOI2017】相逢是问候【扩展欧拉定理】【复杂度分析】【线段树】

    题意:给定一个长度为 nnn 的序列 aia_iai​,维护 mmm 次操作: 区间执行 ai←caia_i \leftarrow c^{a_i}ai​←cai​: 区间求和 模 ppp. 其中 p, ...

  7. 数论:扩展欧几里德(洛谷P1516 青蛙的约会)

    欧几里德 基本思想:gcd(q,r)=gcd(r,q%r); 证明,设q.r的最大公因数为a,则q=xa,r=ya,xy互质 不妨设x>y(显然如果小于会在一次gcd运算后交换) 则q%r=(x ...

  8. Luogu P4139 上帝与集合的正确用法【扩展欧拉定理】By cellur925

    题目传送门 题目中的式子很符合扩展欧拉定理的样子.(如果你还不知扩展欧拉定理,戳).对于那一堆糟心的2,我们只需要递归即可,递归边界是模数为1. 另外,本题中好像必须要用快速乘的样子...否则无法通过 ...

  9. 欧拉函数|(扩展)欧拉定理|欧拉反演

    也许更好的阅读体验 文章目录 欧拉函数 欧拉函数常用性质 欧拉定理 扩展欧拉定理 线性筛法 欧拉反演 欧拉函数 定义 欧拉函数是 小于等于 x的数中与x 互质 的数的 数目 符号 φ ( x ) \v ...

最新文章

  1. 委托与事件代码详解与(Object sender,EventArgs e)详解
  2. Android 再谈handler
  3. SQL对象名无效怎么办法 华骨龙
  4. 深度佳能MP4视频恢复软件 v8.1.0
  5. 突然!高通骁龙855 Plus公布:手机厂商们集体沸腾
  6. docker mysql5.7.19_Docker19.03.13下安装Mysql57
  7. java常用类有哪些_java中的常用类有哪些
  8. 工控自动化 c语言编程,三菱PLC编程软件FXGP-WIN-C编程介绍
  9. 2018注册测绘师各地报名时间和注意事项!莫错过哦!
  10. linux桌面图标怎么设置大小,如何更改桌面图标大小?
  11. 自动配置的IPv4地址怎么取消
  12. 新炬网络签约GBASE南大通用 让中国用户用上世界级国产数据库
  13. java ltp4j_ltp工具使用配置
  14. 全民奇迹服务器如何修改,全民奇迹比较全的修改教程
  15. Praat脚本提取时长及共振峰并绘制声学元音图
  16. 站长常用的200个js代码
  17. 数学建模美赛写作技巧
  18. html首字母样式,CSS实现段落首字母、首字放大特效
  19. stm32 步进电机控制,S曲线加减速,匀加速运动
  20. Game Plug-ins(1)

热门文章

  1. 微软著名程序员、歌手、NBA球队老板保罗·艾伦逝世,盖茨、库克等大佬发文悼念...
  2. 罗马音平假名片假名转换器_记不住五十音的你,你肯定需要这套日语五十音谐音巧记法...
  3. 惊呆了!不改一行 Java 代码竟然就能轻松解决敏感信息加解密
  4. 写了4年博客,我终于也出了一本书。
  5. 19岁P8入驻阿里?从阿里的人才成长体系学习
  6. Vue 高效清空表单,一键清空表单
  7. 在Ubuntu Linux下安装Tomcat
  8. Linux信号实践(2) --信号分类
  9. 简述Spring技术内幕
  10. HDU 4548 美素数 素数题解