欧拉函数,求互质;

欧拉函数 :
欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数 n ,小于 n 且和 n 互质的正整数(包括 1)的个数,记作 φ(n) 。 

完全余数集合:
定义小于 n 且和 n 互质的数构成的集合为 Zn ,称呼这个集合为 n 的完全余数集合。 显然 |Zn| =φ(n) 。

有关性质:
对于素数 p ,φ(p) = p -1 。
对于两个不同素数 p, q ,它们的乘积 n = p * q 满足 φ(n) = (p -1) * (q -1)  。
这是因为 Zn = {1, 2, 3,  ... , n - 1} - {p, 2p, ... , (q - 1) * p} - {q, 2q, ... , (p - 1) * q} , 则 φ(n) = (n - 1) - (q - 1) - (p - 1) = (p -1) * (q -1)  =φ(p) * φ(q) 。

欧拉定理 :
对于互质的正整数 a 和 n ,有 aφ(n)  ≡ 1 mod n  。

证明: ( 1 ) 令 Zn = {x1, x2, ..., xφ(n), S = {a * x1 mod n, a * x2 mod n, ... , a * xφ(n) mod n
        则 Zn = S 。
        ① 因为 a 与 n 互质, xi (1 ≤ i ≤ φ(n)) 与 n 互质, 所以 a * xi  与 n 互质,所以 a * xi  mod n ∈ Zn 。
        ② 若 i ≠ j , 那么 xi ≠ xj,且由 a, n互质可得 a * xi mod n ≠ a * xj mod n (消去律)。

( 2 )     aφ(n) xx2 *... * xφ(n) mod n         (a * x1) * (a * x2) * ... * (a * xφ(n)mod n        (a * x1 mod n) * (a * xmod n) * ... * (a * xφ(n) mod nmod n         xx* ... * xφ(n) mod n       对比等式的左右两端,因为 xi  (1 ≤ i ≤ φ(n)) 与 n 互质,所以 aφ(n)  ≡  1 mod n (消去律)。 注: 消去律:如果 gcd(c,p) = 1 ,则 ac ≡ bc mod p ⇒ a ≡ b mod p 。 费马定理 : 若正整数 a 与素数 p 互质,则有 ap - 1 ≡ 1 mod p 。 证明这个定理非常简单,由于 φ(p) = p -1,代入欧拉定理即可证明。

#include<iostream>  
#include<cstring>  
#include<cmath>  
using namespace std;  
int a[1500005];  
int euler_phi(int x)  //欧拉函数  
{  
    int n=x;  
    int k=(int)sqrt(double(n)+0.5);  
    int m=n;  
    for(int i=2;i<=k;i++)  
    {  
        if(n%i==0)  
        {  
            m=m/i*(i-1);  
            while(n%i==0)  
                n/=i;  
        }  
    }  
    if(n>1)m=m/n*(n-1);  
    return m;  
}  
void phi_table()    //打表,求出1500000中所有的数的欧拉函数值  
{  
    memset(a,0,sizeof(a));a[1]=1;  
    for(int i=2;i<=1500000;i++)  
        if(!a[i])  
        {  
            for(int j=i;j<=1500000;j+=i)  
            {  
                if(!a[j])a[j]=j;  
                a[j]=a[j]/i*(i-1);  
            }  
        }  
}  
int main()  
{  
    int n;phi_table();  
    while(cin>>n)  
    {  
        cout<<euler_phi(n)<<endl;  
        cout<<a[n]<<endl;  
    }  
}  


猜你喜欢

转载自blog.csdn.net/qq_38448815/article/details/77222304
今日推荐