定义和简单性质

欧拉函数在OI中是个非常重要的东西,不知道的话会吃大亏的.

欧拉函数用希腊字母φ表示,φ(N)表示N的欧拉函数.

对φ(N)的值,我们可以通俗地理解为小于N且与N互质的数的个数(包含1).

欧拉函数的一些性质:

1.对于素数p, φ(p)=p-1,对于对两个素数p,q φ(pq)=pq-1

欧拉函数是积性函数,但不是完全积性函数.

2.对于一个正整数N的素数幂分解N=P1^q1*P2^q2*...*Pn^qn.

φ(N)=N*(1-1/P1)*(1-1/P2)*...*(1-1/Pn).

3.除了N=2,φ(N)都是偶数.

4.设N为正整数,∑φ(d)=N (d|N).

根据性质2,我们可以在O(sqrt(n))的时间内求出一个数的欧拉函数值.

如果我们要求1000000以内所有数的欧拉函数,怎么办.

上面的方法复杂度将高达O(N*sqrt(N)).

我们来看看线性筛法的程序:

#include<iostream>
#include<cstdio>
using namespace std;
int euler[];
int Max = ;
void Init(){
euler[]=;
for(int i=;i<Max;i++)
euler[i] = i;
for(int i = ;i < Max;i++)
if(euler[i] == i)
for(int j = i;j < Max;j += i) //注意,j += i
euler[j] = euler[j] / i * (i - );//先进行除法是为了防止中间数据的溢出
}
int main()
{
int a;
cin>>a;
Init();
cout<<euler[a];
return ;
}

妙啊!!!!!!!!!!!

欧拉函数φ

     欧拉定理是用来阐述素数模下,指数同余的性质。

     欧拉定理:对于正整数N,代表小于等于N的与N互质的数的个数,记作φ(N)

     例如φ(8)=4,因为与8互质且小于等于8的正整数有4个,它们是:1,3,5,7

    欧拉定理还有几个引理,具体如下:

    ①:如果n为某一个素数p,则φ(p)=p-1;

    ①很好证明:因为素数p的质因数只有1和它本身,p和p不为互质,所以φ(p)=p-1;

    ②:如果n为某一个素数p的幂次,那么φ(p^a)=(p-1)*p^(a-1);

    ②因为比p^a小的数有p^a-1个,那么有p^(a-1)-1个数能被p所整除(因为把1~p^a-1的p的倍数都筛去了)

所以φ(p)=p^a-1-(p^(a-1)-1)=(p-1)*p^(a-1)

    ③:如果n为任意两个数a和b的积,那么φ(a*b)=φ(a)*φ(b)

    ③因为比a*b小的数有a*b-1个,条件是a与b互质

那么可以知道,只有那些既满足a与其互质且既满足b与其互质的数满足条件。

根据乘法原理,这样的数可以互相组合,那么就有φ(a)*φ(b)个

所以可以得知φ(a*b)=φ(a)*φ(b) (注意条件必须满足a和b互质)

 ④:设n=(p1^a1)*(p2^a2)*……*(pk^ak) (为N的分解式)

         那么φ(n)=n*(1-1/p1)*(1-1/p2)*……*(1-1/pk)

   ④因为各个分解完的p1、p2、……pk均为素数,所以它们均为互质的

每次再刨去它们本身,乘起来

剩下的运用容斥原理,再根据引理②和引理③就可以得出

  其实欧拉定理是费马小定理的推论。。。

欧拉定理:a^(φ(m))同余1(mod m) (a与m互质)

费马小定理是数论中的一个定理。其内容为假如a是一个整数,p是一个质数的话,那么:

  ap = a(mod p)

  假如a不是p的倍数的话,那么这个定理也可以写成:

  ap − 1 = 1(mod p)

欧拉函数&&欧拉定理的更多相关文章

  1. 欧拉函数&欧拉定理&降幂 总结

    欧拉函数&欧拉定理&降幂 总结 标签:数学方法--数论 阅读体验:https://zybuluo.com/Junlier/note/1300214 这年头不总结一下是真的容易忘,老了老 ...

  2. HDU4549 M斐波那契数列 矩阵快速幂+欧拉函数+欧拉定理

    M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Sub ...

  3. Super A^B mod C (快速幂+欧拉函数+欧拉定理)

    题目链接:http://acm.fzu.edu.cn/problem.php?pid=1759 题目:Problem Description Given A,B,C, You should quick ...

  4. POJ3696【欧拉函数+欧拉定理】

    题意: 求最小T,满足L的倍数且都由8组成,求长度: 思路: 很强势的福利:点 图片拿出去食用更优 //#include<bits/stdc++.h> #include<cstdio ...

  5. 2^x mod n = 1(欧拉定理,欧拉函数,快速幂乘)

    2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  6. 数论的欧拉定理证明 &amp; 欧拉函数公式(转载)

    欧拉函数 :欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数 n ,小于 n 且和 n 互质的正整数(包括 1)的个数,记作 φ(n) . 完全余数集合:定义小于 n 且和 n 互质的数 ...

  7. BZOJ3884: 上帝与集合的正确用法(欧拉函数 扩展欧拉定理)

    Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 3860  Solved: 1751[Submit][Status][Discuss] Descripti ...

  8. XMU 1615 刘备闯三国之三顾茅庐(三) 【欧拉函数+快速幂+欧拉定理】

    1615: 刘备闯三国之三顾茅庐(三) Time Limit: 1000 MS  Memory Limit: 128 MBSubmit: 45  Solved: 8[Submit][Status][W ...

  9. [洛谷P5106]dkw的lcm:欧拉函数+容斥原理+扩展欧拉定理

    分析 考虑使用欧拉函数的计算公式化简原式,因为有: \[lcm(i_1,i_2,...,i_k)=p_1^{q_{1\ max}} \times p_2^{q_{2\ max}} \times ... ...

随机推荐

  1. C#——枚举格式转换与比较

    定义一个枚举类型: public enum City { 北京, 上海, 广州 } 控制台判断: static void Main(string[] args) { Console.WriteLine ...

  2. servlet-响应信息

    package servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.ser ...

  3. [Windows Server 2012] 服务器安全加固

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:服务器安全加固 ...

  4. Zabbix 默认网络发现模板修改(第三篇)

    zabbix 默认网络发现模板不能显示ip,我想让他在graph的标题上显示ip,具体要像如下效果 原文地址:http://www.cnblogs.com/caoguo/p/4977254.html ...

  5. Redis 之消息发布与订阅(publish、subscribe)

    使用办法: 订阅端: Subscribe 频道名称 发布端: publish 频道名称 发布内容 一般做群聊,聊天室,发布公告信息等.

  6. div的浮动、清除浮动和布局

    总结: 1.无序列表去除前面的小点点:list-style-type: none; 2.设置左浮动的间距. 外边距:margin :如果设定4个值就是,上右下左的顺序设置 如果设置3个值,那么左和右边 ...

  7. STL源码分析之迭代器

    前言 迭代器是将算法和容器两个独立的泛型进行调和的一个接口. 使我们不需要关系中间的转化是怎么样的就都能直接使用迭代器进行数据访问. 而迭代器最重要的就是对operator *和operator-&g ...

  8. Ubuntu 18.04 nvidia driver 390.48 安装 TensorFlow 1.12.0 和 PyTorch 1.0.0 详细教程

    最近要在个人台式机上搭建TensorFlow和PyTorch运行环境,期间遇到了一些问题.这里就把解决的过程记录下来,同时也可以作为安装上述环境的过程记录. 如果没有遇到类似的问题,想直接从零安装上述 ...

  9. 周记之A Fresh Start(2018/9/2-2018/9/8)

    新学期.新开始.新面貌.新姿态.新目标.新动力……希望自己不忘初心,在自己的地图上摸索自己的路,然后一直走下去,永不回头.在此平台立下一个flag:至少每周一记,包括本周内所做所想所感所悟,继而更加坚 ...

  10. [转]如何有效地报告Bug

    英文原文:Simon Tatham,编译:Dasn 引言 为公众写过软件的人,大概都收到过很拙劣的bug报告,例如: 在报告中说“不好用”: 所报告内容毫无意义: 在报告中用户没有提供足够的信息: 在 ...