我们现在就来学习数论四大定理中的最后一个定理,欧拉定理。
首先我们先介绍一下什么是欧拉函数,欧拉函数 φ ( n ) \varphi(n) φ(n)求的是不超过n且与n互素的正整数的个数,例如: φ ( 4 ) = 2 \varphi(4) = 2 φ(4)=2, φ ( 6 ) = 3 \varphi(6) = 3 φ(6)=3。
具体的欧拉公式如下:
φ ( x ) = x ( 1 − 1 p 1 ) ( 1 − 1 p 2 ) ( 1 − 1 p 3 ) . . . ( 1 − 1 p i ) φ (x) = x(1 - \frac{1}{p_1})(1 - \frac{1}{p_2})(1 - \frac{1}{p_3})...(1 - \frac{1}{p_i}) φ(x)=x(1−p1​1​)(1−p2​1​)(1−p3​1​)...(1−pi​1​)这里的 p i p_i pi​指的是 x x x的所有质因子(特别注意:每个因子在套用欧拉公式的个数为一个)。
举个例子: 12 = 2 ∗ 2 ∗ 3 12 = 2 * 2 * 3 12=2∗2∗3,那么转化为其欧拉公式则为:
y ( 12 ) = 12 ∗ ( 1 − 1 2 ) ∗ ( 1 − 1 3 ) y(12) = 12*(1 - \frac{1}{2})*(1 - \frac{1}{3}) y(12)=12∗(1−21​)∗(1−31​)
之后我们再来介绍下欧拉定理及其推论:
欧拉定理:如果n和a是互素的正整数,则 a φ ( n ) ≡ 1 ( m o d n ) a^{\varphi(n)}\equiv1(\mod\ n) aφ(n)≡1(mod n)
推论:如果n和a是互素的正整数,则 a φ ( n ) + 1 ≡ a ( m o d n ) a^{\varphi(n)+1}\equiv a(\mod\ n) aφ(n)+1≡a(mod n)
准确的说欧拉定理在信息学最大的应用就是欧拉降幂
然后我们就可以开始讲欧拉降幂啦!下式就是欧拉降幂的公式:
A B m o d C ≡ A B m o d φ ( C ) + φ ( C ) m o d C A^B mod C ≡ A^{Bmodφ (C) + φ (C)}mod C ABmodC≡ABmodφ(C)+φ(C)modC(其中 φ ( C ) φ(C) φ(C)就是欧拉公式
那么,我们怎么用代码实现呢
答案是:欧拉公式 + + +快速幂,下面我们给出其模板代码:

#include<bits/stdc++.h>using namespace std;typedef long long ll;ll ouler(ll n)           //欧拉公式
{ll ans = n;ll a = n;for(int i=2;i*i<=n;i++){if(a % i == 0){ans = ans/i*(i - 1);while(a%i == 0)a /= i;}}if(a > i)ans = ans/a*(a - 1);return ans;
}ll fast(ll a, ll b, ll mod)            //快速幂
{ll res = 1;while(b){if(b & 1)res = (res * a) % mod;a = (a * a) % mod;b >>= 1;}return res;
}

这里只是给出了简易的的欧拉降幂模板,具体是实践可以参考2019年icpc
南京网络赛的B题,如果你能知晓欧拉降幂,那么这题做起来将会非常简单。

数论学习六之——欧拉定理(欧拉降幂)相关推荐

  1. 欧拉函数+欧拉定理+拓展欧拉定理(欧拉降幂)

    目录 欧拉函数 欧拉定理 拓展欧拉定理(欧拉降幂) 欧拉函数 在数论中,有正整数n,欧拉函数是小于n的正整数中与n互质的数的数目. 它的通式如下: φ(n)=n*(1-1/p1)*(1-1/p2)*( ...

  2. 数学--数论--欧拉降幂--P5091 欧拉定理

    题目背景 出题人也想写有趣的题面,可惜并没有能力. 题目描述 给你三个正整数,a,m,ba,m,ba,m,b,你需要求:ab mod ma^b \bmod mabmodm 输入格式 一行三个整数,a, ...

  3. 数学--数论--欧拉降幂和广义欧拉降幂(实用好理解)

    一般大佬会给你证明,而菜鸟会教你怎么使用. 先摆上公式: ab≡{abmodϕ(p)gcd(a,p)=1abgcd(a,p)≠1,b<ϕ(p)abmodϕ(p)+ϕ(p)gcd(a,p)≠1,b ...

  4. 数学--数论--广义欧拉降幂(模板)

    未使用欧拉筛: 适用于较少次数计算的欧拉降幂. #include <bits/stdc++.h> #define ll long long using namespace std; ll ...

  5. 欧拉φ函数和欧拉降幂公式

    欧拉φ函数:在数论中,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为φ函数.欧拉商数等.φ(1)=1 C++实现: int GetEuler(i ...

  6. 欧拉降幂和广义欧拉降幂

    先百度贴个欧拉定理 由此可以得到降幂公式 第一个要求a和p互质,第二个和第三个是广义欧拉降幂,不要求a和p互质,但要求b和的大小关系. 那么有了这个公式先写个题目 bzoj3884 题意:求2^(2^ ...

  7. 欧拉降幂 ---- 2020 杭电多校[E - Fibonacci Sum]+欧拉降幂+和式的调整+二次剩余+毒瘤卡常

    解题思路: 首先你得知道斐波那契的通项式子:首先你得知道斐波那契的通项式子:首先你得知道斐波那契的通项式子: F(n)=15[(1+52)n−(1−52)n]F(n) = {1\over\sqrt5} ...

  8. 欧拉降幂及其扩展欧拉降幂

    欧拉降幂: 从公式来看,需要使用快速幂运算和欧拉函数 #include<bits/stdc++.h>using namespace std; typedef __int64 LL;cons ...

  9. 欧拉降幂(Euler_Power_Formula)

    一.欧拉降幂公式 二.证明 欧拉降幂公式与证明 三.例题 https://ac.nowcoder.com/acm/contest/330/E 四.参考文章 https://blog.csdn.net/ ...

最新文章

  1. 复旦的新衣再登Nature!穿在身上能为手机充电,可水洗可弯折,刀戳车撵都不坏...
  2. vue component created没有触发_详解在Vue中使用TypeScript的一些思考(实践)
  3. 使用Amanda ZRM备份远程MySQL数据库
  4. QT学习笔记(四):Qt5+MSVC编译 中文字符显示乱码问题解决
  5. python监控windows日志_Python 监控日志的简单示例
  6. python对XML 操作
  7. Pycharm 字体大小快捷方式设置
  8. object-C 与 C++的比较
  9. oracle+erp+采购管理操作手册 - 图文 - 百度文库
  10. 很棒的VC界面库 - GuiToolkit
  11. 基于R语言的因子分析
  12. 一分钟了解”matlab对数函数log“
  13. OceanBase可视化工具ODC2.3下载地址。
  14. tc27x的内存保护MPU设置浅析(个人理解)
  15. 执念斩长河线上线性代数开启---绪论
  16. powerbi服务器打开文件慢,Power BI 优化指南
  17. 详解for循环(各种用法)
  18. ANSYS workbench数值分析 新手教程(1)
  19. 亚马逊查询关键词排名的工具_拼多多关键词排名查询工具怎么查关键词的?
  20. PDFJS跨域显示PDF文件的两种方法

热门文章

  1. 服务器搭建--Linux安装nginx
  2. 微软做好了放弃Flash Player的准备
  3. pytorch早停法
  4. php用360浏览器显示不正常,win10系统下360浏览器网页显示不正常的解决方法
  5. 转:PL/0语言词法及语法分析系统的设计与实现
  6. [kpw] USBNetwork的网连模式
  7. 人工智能之无人驾驶技术到底是怎么回事
  8. ant design vue的ApiSelect选择器使用注意点
  9. FileReader FileInputStream InputStreamReader BufferedReader 作用与区别
  10. 5G专利第一再惹争议,诺基亚声称第一,华为咋办?