【luoguP5091】【模板】欧拉定理
欧拉定理:
当\(a\),\(m\)互质时,\(a^{\phi(m)}\equiv 1 (mod ~ m)\)
扩展欧拉定理:
当\(B>\phi(m)\)时,\(a^B\equiv a^{B~mod~\phi(m)+\phi(m)}\)
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#define int long long
using namespace std;
int a,m,b;
bool flag;
inline int read(int MOD){
int x=0; char c=getchar();
while(c<'0') c=getchar();
while(c>='0'){
x=x*10+c-'0';
if(x>MOD) flag=1,x%=MOD;
c=getchar();
}
return x;
}
inline int mul(int x,int y,int MOD){
int s=0;
while(y){
if(y&1) s=(s+x)%MOD;
y>>=1;
x=(x+x)%MOD;
}
return s;
}
inline int qpow(int x,int k,int MOD){
int s=1ll%MOD;
while(k){
if(k&1) s=mul(s,x,MOD);
k>>=1;
x=mul(x,x,MOD);
}
return s;
}
signed main()
{
scanf("%lld%lld",&a,&m);
int phi=m;
int k=sqrt(m),x=m;
for(int i=2;i<=k;++i)
if(x%i==0){
while(x%i==0) x/=i;
phi=phi/i*(i-1);
}
if(x!=1) phi=phi/x*(x-1);
b=read(phi);
if(flag)
printf("%lld\n",qpow(a,b+phi,m));
else printf("%lld\n",qpow(a,b,m));
return 0;
}
【luoguP5091】【模板】欧拉定理的更多相关文章
- P5091 【模板】欧拉定理(欧拉降幂)
P5091 [模板]欧拉定理 以上3张图是从这篇 博客 里盗的,讲的比较清楚. #include<bits/stdc++.h> using namespace std; typedef l ...
- P5091 【模板】欧拉定理
思路 欧拉定理 当a与m互质时 \[ a^ {\phi (m)} \equiv 1 \ \ (mod\ m) \] 扩展欧拉定理 当a与m不互质且\(b\ge \phi(m)\)时, \[ a^b \ ...
- LG5901 【模板】欧拉定理
题意 题目描述 给你三个正整数,$a,m,b$,你需要求: $a^b \mod m$ 输入输出格式 输入格式: 一行三个整数,$a,m,b$ 输出格式: 一个整数表示答案 输入输出样例 输入样例#1: ...
- 题解 P5091 【【模板】欧拉定理】
欧拉定理:若 \(gcd(a,n)=1\),\(a^{\varphi(n)}\equiv 1(mod\ n)\) 设 \(1\sim n-1\) 中与 \(n\) 互素的 \(\varphi(n)\) ...
- [洛谷P5091]【模板】欧拉定理
题目大意:求$a^b\bmod m(a\leqslant10^9,m\leqslant10^6,b\leqslant10^{2\times10^7})$ 题解:扩展欧拉定理:$$a^b\equiv\b ...
- 洛谷 P3811 【模板】乘法逆元(欧拉定理&&线性求逆元)
题目传送门 逆元定义 逆元和我们平时所说的倒数是有一定的区别的,我们平时所说的倒数是指:a*(1/a) = 1,那么逆元和倒数之间的区别就是:假设x是a的逆元,那么 a * x = 1(mod p), ...
- P5091 【模板】扩展欧拉定理
题目链接 昨天考试考到了欧拉公式,结果发现自己不会,就来恶补一下. 欧拉公式 \(a^b \bmod p = a^{b}\) \(b < \varphi(p)\) \(a^b \bmod p = ...
- uestc_retarded 模板
虽然这个队,以后再也没有了,但是他的模板,是永垂不朽的![误 #include <ext/pb_ds/priority_queue.hpp> __gnu_pbds::priority_qu ...
- Description has only two Sentences(欧拉定理 +快速幂+分解质因数)
Description has only two Sentences Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...
随机推荐
- C#泛型集合之——队列与堆栈
队列与堆栈基础 队列 1.操作: (1)创建及初始化: Queue<类型> 队列名 =new Queue<类型>()://空队列,无元素 Queue<类型> 队列名 ...
- Java自学-控制流程 for
Java的for循环 for循环,和while一样,只是表达方式不一样 示例 1 : for 比较for和while public class HelloWorld { public static v ...
- Java web服务端参数校验Javax.validation (springboot)
一.基本使用 Javax.validation是spring集成自带的一个参数校验接口.可通过添加注解来设置校验条件. 下面以springboot项目为例进行说明.创建web项目后,不需要再添加其他的 ...
- el-table单元格样式更改
前几天遇到一个关于el-table表格样式的问题一直没解决 因为在el-table-column加样式并不生效所以更改起来比较麻烦 后来了看来element官方文档和在一些关于此方面的博客,使用了一个 ...
- 英语foteball足球历史
foteball n.足球 现代足球 参见:现代足球 现代足球起源地是在英格兰.传说在11世纪,英格兰与丹麦之间有过一场战争,战争结束后,英格兰人在清理战争废墟时发现一个丹麦入侵者的头骨,出于愤恨,他 ...
- 反序列化之PHP原生类的利用
目录 基础知识 __call SoapClient __toString Error Exception 实例化任意类 正文 文章围绕着一个问题,如果在代码审计中有反序列化点,但是在原本的代码中找不到 ...
- postman 在pre-request中发送application/x-www-form-urlencoded 格式表单
postman中在pre-request 发送请求 知识点: json数据解析和遍历 application/x-www-form-urlencoded表单 Array基本使用 js函数 http请求 ...
- [I2C].I2C总线详解
转自:https://www.cnblogs.com/BitArt/archive/2013/05/27/3101037.html 一. 基本信息 1. 概述 I²C 是Inter-Integrate ...
- jpa之No property buyerOpenId found for type OrderMaster! Did you mean 'buyerOpenid'?
java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.conte ...
- springboot的第一节课
快速开始spring boot应用 官方向导搭建boot应用 地址:http://start.spring.io/ 设置项目属性: 3.解压,拷贝到工作空间,导入maven项目 4.写Controll ...