数学:欧拉定理

若n,a为正整数,且n,a互质,(a,n) = 1,则a^φ(n) ≡ 1 (mod n) 
特别的φ(1)=1函数

费马小定理是欧拉定理的一种特殊状况spa

以前介绍的费马小定理是用来化简幂取模运算的,欧拉定理一样能够作到:code

a^x≡a^(x%φ(m))(mod m)blog

这样就能够了it

以前的费马小定理是让指数部分模一个p-1io

而后这里是让指数部分模一个欧拉函数φ(m)其实一个意思class

看一道例题,HDU1395搜索

2^x mod n = 1,或者写成 2^x ≡ 1 (mod n) 循环

求x方法

而后发现n为偶数或者是n为0时无解,答案一定是一个奇数

而后根据欧拉定理:

欧拉定理:a^(euler_phi(n))≡1(mod n),(a,n互质)

其中euler_phi为欧拉函数,计算不超过n且与n互质的个数

求法是n*∏(pi-1)/pi,pi为n的质因子

这里能够表示为:m=euler_phi(n)

因此a^m%mod=1

不过m不必定是最小循环节,但m是一个循环节,则最小循环节一定是m的一个因子

于是找出全部m的因子,暴力搜索下就行了

其实这个的重点是求欧拉函数,欧拉函数也是有相似于埃式筛法的计算方法的

 1 //2^x mod n = 1
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<algorithm>
 5 using namespace std;  6 long long t,mod;  7 long long e[1005];  8 long long euler_phi(long long n)  9 { 10     long long m=sqrt(n+0.5); 11     long long ans=n; 12     for(int i=2;i<=m;i++) 13  { 14         if(n%i==0) 15  { 16             ans=ans/i*(i-1); 17             while(n%i==0) n=n/i; 18  } 19  } 20     if(n>1) ans=ans/n*(n-1); 21     return ans; 22 } 23 void find(long long n) 24 { 25     e[t++]=n; 26     for(int i=2;i*i<=n;i++) 27  { 28         if(n%i==0) 29  { 30             if(i*i==n) e[t++]=i; 31             else
32  { 33                 e[t++]=i; 34                 e[t++]=n/i; 35  } 36  } 37  } 38 } 39 long long pows(long long a,long long b) 40 { 41     long long s=1; 42     while(b!=0) 43  { 44         if(b&1) s=(s*a)%mod; 45         a=(a*a)%mod; 46         b=b>>1; 47  } 48     return s; 49 } 50 int main() 51 { 52     long long n; 53     while(scanf("%lld",&n)==1) 54     if(n%2==0||n==1) 55         printf("2^? mod %d = 1\n",n); 56     else
57  { 58         long long m,ans; 59         m=euler_phi(n); 60         t=0; 61  find(m); 62         sort(e,e+t); 63         mod=n; 64         for(int i=0;i<t;i++) 65  { 66             if(pows(2,e[i])==1) 67  { 68                 ans=e[i]; 69                 break; 70  } 71  } 72         printf("2^%d mod %d = 1\n",ans,n); 73  } 74     return 0; 75 }

 再回过头来对比一下欧拉定理和费马小定理

费马小定理要求模数p必须是个质数,且a和p互质:a^(p-1) ≡1(mod p)

欧拉定理只要求a和m互质便可:a^φ(m)≡1(mod m)

相关文章
相关标签/搜索