费马小定理
定义:
设 p 为素数,a 为整数,则 ap≡a (modp) ,若 p∤a ,则 ap−1≡1 (modp)
先证明若 p∣a ,证明过程如下:
∵p∣aamodp=0apmodp=0
再证明当 p∤a 时:
创建集合 S={ x1,x2,x3,⋯,xp−1} ,S为1,2,3,⋯,p-1的一个 排列 ,ax1,ax2,ax3,⋯,axp−1 ,任意两项模 p 不同余
若∃ ∀ i,j,╞1≤i<j<p ,使得 axi ≡axj(modp)
则 p∣a(xi−xj)
∵p∤a ,∴p∣(xi−xj)
又∵ximodp≠xjmodp
∴矛盾
设∀ k∈S,p ∤ Sk
∵ax1modp,ax2modp,⋯,axp−1modp 为1,2,3,⋯ ,p-1的一个排列(上文已提到)
∴(ax1)(ax2)(ax3)⋯(axp−1)≡x1⋅x2⋅x3⋯xp−1(modp)
x1⋅x2⋅x3⋯xp−1=(p−1)(p−2)(p−3)⋯2⋅1=(p−1)!
∵p∤(p−1)!
∴ap−1≡1(modp)
得证
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)