当前位置: 首页 > news >正文

欧拉定理:若 gcd(a,n)=1,则 a^φ(n)≡1(mod n)。

【欧拉定理简介】
欧拉定理:
若 gcd(a,n)=1,则 a^φ(n)≡1(mod n)
(1)例如,a=3,n=10,gcd(3,10)=1,φ(10)=4,则 a^φ(n)=3^4=81,81 mod 10=1,欧拉定理成立。
(2)当 n 是质数时,φ(n)=n-1,欧拉定理退化为费马小定理 a^(n-1)≡1(mod n),其中 a 和 n 的最大公约数 gcd(a,n)=1。 例如,a=2,n=5,gcd(2,5)=1,a^(n-1)=2^4=16,16 mod 5=1,费马小定理成立。
(3)注意:费马小定理是欧拉定理的特例,在模运算中应用广泛。

【算法代码】
该代码实现了四个核心功能:
(1)计算最大公约数 (gcd);
(2)通过质因数分解计算欧拉函数 φ(n);
(3)计算快速幂;
(3)验证欧拉定理 a^φ(n)≡1 mod n 的条件和结论。

#include <bits/stdc++.h>
using namespace std;int gcd(int a, int b) {if(b==0) return a;else return gcd(b,a%b);
}int oula_phi(int x) {int ans=x;for(int i=2; i*i<=x; i++) {if(x%i==0) {ans=ans/i*(i-1);while(x%i==0) x/=i;}}if(x>1) ans=ans/x*(x-1);return ans;
}int fastPow(int a,int b,int p) {int ans=1;while(b) {if(b & 1) ans=ans*a%p;a=a*a%p;b>>=1;}return ans%p;
}bool verify_euler_theorem(int a,int n) {if(gcd(a,n)!=1) return false;int phi=oula_phi(n);int ans=fastPow(a,phi,n);return ans==1;
}int main() {int a,n;cin>>a>>n; //gcd(a,n)=1if(verify_euler_theorem(a,n)) {cout<<"φ("<<n<<")="<<oula_phi(n)<<endl;cout<<a<<"^φ("<<n<<")≡1 mod "<<n<<" is true."<<endl;} else cout<<"Not meeting the conditions."<<endl;return 0;
}/*
in:
3 7out:
φ(7)=6
3^φ(7)≡1 mod 7 is true.
*/



 

相关文章:

  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月27日第90弹
  • 算力革命:RoCE实测推理时延比InfiniBand低30%的底层逻辑
  • [BUG记录]0X10 会话切换服务响应NRC 0x10
  • 2025年5月6日 飞猪Java一面
  • LittleFS 小型文件系统(一)
  • 实验四 ——序列检测器和序列发生器
  • CSS 中的transform详解
  • 树莓派超全系列教程文档--(50)如何查找树莓派的IP地址
  • 创建型模式之Abstract Factory(抽象工厂)
  • 基于AI的智能农业病虫害识别系统实战指南
  • 【笔记】解决ImportError: cannot import name ‘interp‘ from ‘scipy‘报错
  • 制作一款打飞机游戏59:子弹生成
  • Java Stream API 终止操作的详细解析
  • Python filter()函数详解:数据筛选的精密过滤器
  • 3.20 工程计价数字化与智能化
  • 【Redis】常用的数据类型 + 单线程模型
  • 改进yolo11模型学习
  • AI大模型学习三十、ubuntu安装comfyui
  • 让学习回归到技术上来(技术 !=== 死记硬背)
  • 项目启动以及Vue初识
  • 家里的电脑怎样做网站赚钱/怎么推广软件
  • 手机版cad简单制图/站内优化主要从哪些方面进行
  • 长春网站制作一般需要多少钱/百度电商广告代运营
  • 广州市建设集团网站首页/交换友情链接时需要注意的事项
  • Wordpress 仿站 工具/百度移动权重
  • jsp做就业网站/中国最新消息今天