hdoj 1286 (欧拉函数)
来源:互联网 发布:知乎文章怎么看 编辑:程序博客网 时间:2024/06/08 00:57
题目大意:赤裸裸的欧拉函数.
设φ(m)表示不超过m,而和m互质的正整数的个数,则φ(m)称为欧拉函数.
定理1:
设p为质数,则我们有
1) φ(p) = p - 1 ;
2) 若n为正整数,则φ(pn)= pn(1-1/p).
证明:
1) 由于1,2,…,p-1都与p互质,所以φ(p) = p -1;
2) 当 n 是一个正整数,由于(a,pn)=1 <=> (a,p)=1,因此,不超过pn而为p的倍数的的正整数个数为[pn/p] =pn-1.所以不超过pn且与pn互质的正整数的个数为φ(pn)=pn-pn-1=pn(1-1/p).
定理2:
若a=p1a1p2a2…pnan是 a 的标准分解式,则
φ(a)= a(1-1/p1)(1-1/p2)…(1-1/pn).
证明:
因为不超过a而为p1的倍数的正整数,共有 [a/p1] = a / p1个,它们分别为:
p1, 2p1, 3p1,4p1,... ,[a/p1]p1
所以不超过a,而与p1互质的正整数的个数为a - a/p1 = a(1-1/p1) ;
因为不超过a而为p2的倍数的正整数,共有[a/p2] = a / p2个:
p2, 2p2, 3p2,4p2,…[a/p2]p2
但这a/p2个p2的倍数中,有些已是p1的倍数,在计算p1的倍数时以计算过,这些数是在1,2,3,…a/p2中,与p1互质的正整数的个数,它共有(a/p2)*(1-1/p1)个.
于是,不超过a,而与p1,p2都互质的正整数的个数为
a(1-1/p1)-a/p2(1-1/p1)=a(1-1/p1)(1-1/p2).
又因为不超过a而为p3的倍数的正整数,共有[a/p3]=a/p3个:
p3, 2p3, 3p3,4p3,…[a/p3]p3
但这a/p3个p3的倍数中,有些也是p1,p2的倍数,所以要除去它们.
由上述的计算方法可知,不超过a且与p1,p2,p3都互质的正整数的个数为:
a(1-1/p1)(1-1/p2)-a/p3(1-1/p1)(1-1/p2)=a(1-1/p1)(1-1/p2)(1-1/p3).
因为n是有限数,故得不大于a而与p1,p2,p3,…pn都互质的正整数的个数共有:
a(1-1/p1)(1-1/p2)…(1-1/pn)个,
即φ(a)= a(1-1/p1)(1-1/p2)…(1-1/pn).成立
推论:
若(a,b)=1,则φ(ab)=φ(a)φ(b).
- hdoj 1286 (欧拉函数)
- 【欧拉函数】hdoj 抱歉
- HDOJ-----1787欧拉函数
- hdoj 1787《《欧拉函数》》
- hdoj 1286 找新朋友 【数论之欧拉函数】
- hdoj 1286 找新朋友(欧拉函数)
- HDOJ 1286 找新朋友(欧拉函数)
- HDOJ 找新朋友 1286【欧拉函数】
- hdoj 1286 找新朋友 【欧拉函数】
- hdoj 1286 找新朋友 【欧拉函数】
- 找新朋友(hdoj--1286--欧拉函数)
- HDOJ 1286 找新朋友(欧拉函数模板)
- hdoj 找新朋友 1286 (欧拉函数入门)
- HDOJ 1286 找新朋友(数论)(欧拉函数)
- hdoj 1286 找新朋友<欧拉函数>
- HDOJ 1286 找新朋友【欧拉函数】
- 欧拉函数 HDOJ 1286 找新朋友
- 【欧拉函数】 HDOJ 3501 Calculation 2
- AddDataSink
- EOSS V1.0企业运营支撑系统(基于RBAC原理的权限管理)
- SQL中CONVERT转化函数的用法
- 项目终于快over啦...
- Unicode与ASCII的转换
- hdoj 1286 (欧拉函数)
- 注意Python赋值表达式后的逗号
- 使用oracle的trunc和dbms_random.value随机取n条数据
- 利用Java反射机制,调用一个类的构造函数和一般函数
- 理解“高内聚,低耦合”
- u-boot.lds文件诠释
- HTTP协议详解
- Flash做一个简单SoundVisualizer
- html小计