数论-欧拉定理及延伸

欧拉函数

首先明确,没有欧拉函数是没有欧拉定理,所以我们先从欧拉函数入手了解。

定义:对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目( φ(1) = 1 )。它称为Euler’s totient function、φ函数、欧拉商数等。
例如φ(8)=4,因为1,3,5,7均和8互质。(因为 8 = 222。φ(8) = 8*(1-1/2) = 4)

如何求欧拉函数?
在这里插入图片描述
(式子中,p 与 x 互为质因数)
当 x= 1 时,φ(1)=1
当 x 为质数时,φ(x) = x-1
否则,φ(x) = 通式的实质是将 大于1的数是 x 公约数的数全部筛掉。

在欧拉筛的基础上可以计算欧拉函数值。

for(i=1;i<=n;i++)
{
    if(prime[i]) //判断是否质数
    {
        phi[i] = i-1;
        num++;
        zs[num] = i;
    }
    //筛质数顺便求解
    for(j=1;i*zs[j]<=n && j<=num;j++)
    {
        prime[i*zs[j]] = false;
        if(i%zs[j]!=0) phi[i*zs[j]] = phi[i]*phi[zs[j]];
            else phi[i*zs[j]] = phi[i]*zs[j];
    }
}
#include<cstdio>
using namespace std;
const int N = 1e6+10 ;
int phi[N], prime[N];
int tot;//tot计数,表示prime[N]中有多少质数 
void Euler(){
    phi[1] = 1;
    for(int i = 2; i < N; i ++){
        if(!phi[i]){
            phi[i] = i-1;
            prime[tot ++] = i;
        }
        for(int j = 0; j < tot && 1ll*i*prime[j] < N; j ++){
            if(i % prime[j]) phi[i * prime[j]] = phi[i] * (prime[j]-1);
            else{
                phi[i * prime[j] ] = phi[i] * prime[j];
                break;
            }
        }
    }
}
 
int main(){
    Euler();
}

欧拉函数的特殊性质求φ的值

p为质数

1。phi( p ) = p-1 因为质数p除了1以外的因数只有p,故1至p的整数只有p与p不互质

2. 如果i mod p = 0, 那么 phi(i * p) = phi(i) * p
理解:i mod p==0,p是 i 的一个因子,且p为质数,i * p 后i * p相对于i来说不会出现新的素因子。可以举个例子看看。

3.若i mod p ≠ 0, 那么 phi( i * p ) = phi(i) * ( p-1 )
证明:  i mod p 不为0且p为质数, 所以 i与p互质, 那么根据 欧拉函数 的积性 phi(i * p)=phi( i ) * phi( p ) 其中phi( p )=p-1即第一条性质

欧拉函数 的积性 : φ( mn ) = φ(m) * φ(n)

利用性质 gcd(km+r,m) = gcd(r, m) 找出1 - mn 中的质数个数,详细推导看下面博客
欧拉函数的积性


欧拉函数相关内容参考补充

欧拉定理

若 gcd( a,p ) = 1,则 a^φ( p ) ≡ 1 (mod p) (这里还差证明*************)
这个定理可以求乘法逆元

包含了 费马小定理: a ^ (p-1) ≡ 1 (mod p) <==> a^p ≡ a(mod p)
(要求p为质数,因为当p为质数时φ( p ) = p-1)

欧拉定理的应用及推广
扩展欧拉定理:
在这里插入图片描述
用途:
1.求解乘法逆元;(求解乘法逆元中使用到了该公式)(这里还差证明*************)
2.取模时降幂 若a,n互质 a^k ≡ a^(k mod φ(n)) (mod n) 显然的;

推导:

a^b % p 不等价 (a%p)^(b%p) % p

因为

a^φ( p ) ≡ 1 (mod p)
所以

a^ b % p = (a%p)^(b%φ( p )) % p

(欧拉函数前提是a和p互质)

如果p为质数,则有
在这里插入图片描述

又发现了一个新公式,貌似可以摆脱a和p互质的束缚
在这里插入图片描述

参考链接

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值