首页 > 其他分享 >欧拉函数,欧拉定理,费马定理

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

时间:2023-06-21 14:26:15浏览次数:38  
标签:费马 int res 定理 long 欧拉 函数

欧拉函数:指从1-n中与n互质的数的个数

首先要知道,一个数 $n$ 分解质因数之后会变成这样一个形式:

$n$ = $p1k1$ + $p2k2$+ ... + $pnkn$

而欧拉函数: $φ$= $n$ * (1-1/p1) * (1-1/p2) * ... * (1-1/pn).

证明: 

1. 由于n可以被分解为p1,p2..的倍数,那么首先要用 n-n/p1-n/p2-...

2. 加上pi*pj的倍数,因为这当中有被重复减去的数,要加回去

3. 加上pi*pj*pk的倍数,因为有可能三个数的倍数被减去

4.....依次类推

 

 朴素做法:

 

//欧拉函数:1-n当中与n互质的数的个数
#include <bits/stdc++.h>
//#define int long long
using namespace std;
const int N=1e5+10,mod=1e9+7;
string s;
int n,t,a[N],f[N],res,num,ans;
bool vis[N];
int main()
{
    std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>t;
    while(t--){
        cin>>n;
        res=n;
        for(int i=2;i<=n/i;i++){
            if(n%i==0){
                //res=res*(1-1/i);
                res=res/i*(i-1);//和上面的公式一样的,只是相除有可能因为浮点数影响判断
                while(n%i==0) n/=i;
            }
        }
        if(n>1) res=res/n*(n-1);
        cout<<res<<endl;
    }
    return 0;
}

欧拉筛法求欧拉函数:

 

#include <bits/stdc++.h>
//#define int long long
using namespace std;
const int N=1e5+10,mod=1e9+7;
string s;
long long  n,t,a[N],f[N],res,num,ans,prime[N];
bool vis[N];
long long get_ouler(int u)
{
    res=0,f[1]=1;
    for(int i=2;i<=u;i++){
        if(!vis[i]){
            prime[++num]=i;
            f[i]=i-1;//如果是质数,那么它与他互质的个数就是i-1
        }
        for(int j=1;prime[j]<=n/i;j++){
            vis[prime[j]*i]=true;
            if(!(i%prime[j])){  
                f[prime[j]*i]=f[i]*prime[j];
                break;
            }
            f[prime[j]*i]=f[i]*(prime[j]-1);
        }
    }
    for(int i=1;i<=n;i++) res+=f[i];
    return res;
}
int main()
{
    std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>n;
    cout<<get_ouler(n)<<endl;
    return 0;
}

 

欧拉定理:

若a与n互质,则  aφ(n)%n≡1也就是a的欧拉函数的n次方模n同余与1

费马定理:   当n是质数的时候: an-1%n≡1

 

标签:费马,int,res,定理,long,欧拉,函数
From: https://www.cnblogs.com/o-Sakurajimamai-o/p/17496086.html

相关文章

  • 欧拉回路
    日常发癫好累好累好累好累。。。好烦好烦好烦好烦。。。 欧拉回路前置概念度数(出度和入度),对于无向图中一点的度数即为与该点相连的边数。性质欧拉回路 无向图每个点的度数均为偶数。可以想象,如果存在欧拉回路则通过一条边进入某个点时,必然需要从另一条边出来,即......
  • Primes on Interval(欧拉筛+二分+滑动窗口)
    【题面】你决定用素数定理来做一个调查.众所周知,素数又被称为质数,其含义就是除了数字一和本身之外不能被其他任何的数字除尽.现在给定一个正整数序列 ,+1,⋯ ,a,a+1,⋯,b (≤)(a≤b),请找出一个最小值 l,使其满足对于任意一个长度为 l 的子串,都包含 k 个质数.......
  • 一种证明勾股定理的方法
    我最近想到了一种新的证明勾股定理的方法考虑直角三角形\(ABC\),假设\(B\)是直角,\(AB=x,BC=y\),过\(B\)作\(AC\)的垂线交\(AC\)于\(H\),显然三角形\(ABH\),\(BHC\),\(ABC\)两两相似。所以\(\frac{AH}{BH}=\frac{AB}{BC}=\frac{a}{b}\)令\(AH=kx\),则\(BH=ky\),由射影定理可得\(BH^2=AH......
  • [数论]中国剩余定理CRT
    ChineseRemainderTheorem\(x≡ai(modmi)\)中国剩余定理CRT1.定义Th.给出一元线性同余线性方程组\(x≡a1\bmodm1\)\(x≡a2\bmodm2\)...\(x≡an\bmodmn\)定理指出假设素数\(m1,m2...mn\)两两互素,对任意的整数\(a1,a2...an\)上述方程有解,并且可以通过如下......
  • 【笔记】韦达定理的定义与证明
    前言已知,一元二次方程\(ax^2+bx+c=0\)\((a,b,c\in\mathbb{R},a\not=0)\)有如下求根公式:\[\Delta=b^2-4ac\]\[x_{1,2}=\frac{-b\pm\sqrt{\Delta}}{2a}\]当\(\Delta<0\)时,方程无实数根;当\(\Delta=0\)时,方程有两个相等的实数根(\(x_{1}=x_{2}\));当\(\D......
  • 算法学习笔记(25): 矩阵树定理
    矩阵树定理本文不作为教学向文章。比较好的文章参考:矩阵树-定理以及凯莱公式【学习笔记】矩阵树定理(Matrix-Tree)_繁凡さん的博客-CSDN博客矩阵树定理入土-ixRic的博客-洛谷博客对于无向图无向图中应该是矩阵树定理的常用场景。无向图的矩阵树定理讲的是:......
  • 扩展中国剩余定理(EXCRT)
    中国剩余定理(CRT)不能解决模数不互质情况的模线性同余方程组。这是中国剩余定理的原理所决定的。但当我们的模数不互质时,这个方式显然就寄掉了,因此我们要打破原有的思路,去找一个新的方式解不定方程组,这时我们的扩展中国剩余定理(EXCRT)就出现了假设我们现在有如下不定方程组\[\b......
  • 隐函数定理的几何应用
    隐函数定理的几何应用一、平面曲线的切线与法线设平面曲线由方程\[F(x,y)=0\tag{1}\]确定,它在\(P_0(x_0,y_0)\)的某领域上满足隐函数定理的条件,于是在点\(P_0\)附近所确定的连续可微隐函数\(y=f(x)\)(或\(x=g(y)\))和方程\((1)\)在\(P_0\)附近表示同一曲线,从而该曲......
  • Luogu P1495 【模板】中国剩余定理(CRT)/ 曹冲养猪
    【模板】中国剩余定理(CRT)/曹冲养猪题目描述自从曹冲搞定了大象以后,曹操就开始捉摸让儿子干些事业,于是派他到中原养猪场养猪,可是曹冲满不高兴,于是在工作中马马虎虎,有一次曹操想知道母猪的数量,于是曹冲想狠狠耍曹操一把。举个例子,假如有\(16\)头母猪,如果建了\(3\)个猪圈,剩下......
  • CAP原则(CAP定理)、BASE理论
    一、CAP原则 CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partitiontolerance(分区容错性),三者不可得兼。CAP原则是NOSQL数据库的基石。分布式系统的CAP理论:理论首先把分布式系统中的三个特性进行了如下归纳:一致性(C):在分......