欧拉函数、费马定理、欧拉定理

来源:互联网 发布:数控编程薄膜按键开关 编辑:程序博客网 时间:2024/04/29 17:01

一、欧拉函数

思考:任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?

解:计算这个值的方法就叫做欧拉函数,以φ(n)表示。


怎样求一个任意数的欧拉函数值?



其中(3)为欧拉函数的通用计算形式。

实现代码:

long phi(long n){    long ans=n;    for (long i=2; i*i<=n; i++) //寻找素数pi(任意一个正整数可以分解成唯一的质因数的乘积,所以从小到大的找,则符合条件的一定是素数)    {        if(n%i==0) //n能被i整除        {            n/=i;            ans=ans-ans/i;//ans=ans*(1-1/i)            while (n%i==0) //找出素数pi对应的指数是多少            {                n/=i;            }        }    }    if(n>1)    {        ans=ans-ans/n;    }    return ans;}

可以用poj2407来测试代码。


二、费马定理

如果p是素数并且a是不能被p整除的正整数,那么:


费马定理的另一种形式:

 如果p是素数,a任意正整数,则对gcd(a,p)=1,有:



证明:

因为p是素数,所以a、p互素,所以集合{a,2a,3a,…,(p-1)a}在同余意义下等价于{1,2,3,…,(p-1)}(注:元素顺序可能不同)
所以a×2a×3a×…×(p-1)a≡1×2×3×…×(p-1) mod p,即(p-1)!a^(p-1)≡(p-1)!mod p,所以a^(p-1)≡1mod p,也即ap≡a mod p。

来看道例题:



三、欧拉定理

若整数a与整数n互素,则:


类似费马定理,欧拉定理的另一种表述也很有用(a和n不一定互素):


如果n=p是素数,则有


显然,欧拉定理可以看成是费马定理的推广形式。


下面来看看一道例题:






0 0
原创粉丝点击