欧拉函数
来源:互联网 发布:淘宝店铺粉丝怎么增加 编辑:程序博客网 时间:2024/05/01 22:43
欧拉函数
E(n)表示小于n的所有正数,与n互质的数的个数
1 当p为素数时,显然E(p)= p-1
2 当n=p^k (p为素数)时,E(p^k)=p^k-p^(k-1)
证明:小于n的数一共有p^k-1个,其中不与p互质的有p*1,p*2,p*3,…p*(p^(k-1)-1)(显然有p^(k-1)-1个),则E(n)=(p^k-1)-(p^(k-1)-1)=p^k-p^(k-1);
3 任何一个整数n都可以表示为n=(p1^a1)*(p2^a2)*…*(pn^an)
若ab互质,E(ab)=E(a)*E(b),欧拉函数为积性函数
E(n)=E(p1^a1)*E(p2^a2)*…*E(pn^an)
=(p1^a1-p1^(a1-1))*(p2^a2-p2^(a2-1))*…*(pn^an-pn^(an-1))
=(p1^a1*p2^a2*..*pn^an)*((1-1/p1)*(1-1/p2)*…*(1-1/pn))
=n*(1-1/p1)*(1-1/p2)*…*(1-1/pn)
4 E(p^k)=p^k-p^(k-1)=(p-1)*p^(k-1)
E(p^(k-1))=p^(k-1)-p^(k-2)=(p-1)*p^(k-2)
当k=1时,E(p)=p-1
当k>1时,E(p^k)=E(p^(k-1))*p
由上式,当p为素数时
若p是n的约数,E(n*p)=E(n)*p
否则,E(n*p)=E(n)*E(p)=E(n)*(p-1)
//求n的欧拉函数值,模板
#include"stdio.h"int phi(int n){int i;int ans;ans=1;for(i=2;i*i<=n;i++){if(n%i==0){ans*=(i-1);n/=i;while(n%i==0){ans*=i;n/=i;}}}if(n!=1)ans*=n-1;return ans;}int main(){int n;while(scanf("%d",&n)!=-1)printf("%d\n",phi(n));return 0;}
- 欧拉函数
- 欧拉函数
- Relatives 【欧拉函数】
- 欧拉函数
- POJ_2407_欧拉函数
- 欧拉函数
- hdu_3501_欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数应用
- 欧拉函数
- 欧拉函数
- 欧拉函数
- ACM-欧拉函数
- 大连工业大学csdn俱乐部暑期(2013.7)至下学期(2014.1)的计划
- 数据库三范式详解
- MyEclipse中debug用法
- 求解线性方程组之Gauss_Jordan消去法
- Learning D3.js(2) 让你的柱形图/直方图动起来
- 欧拉函数
- django 事务小结(ORM 事务以及raw sql,customize sql 事务处理)
- 乐呵一下——程序猿
- 求解线性方程组之Gauss-Jordan消去法求矩阵的逆
- UVA 11300 Spreading the Wealth 推导+中位数求解
- c语言字符串 数字转换函数大全
- ISO/IEC 14496(MPEG4) 文档内容简介
- nyoj-138-找球号(二)----hash算法之除留余数法+vector
- Ext.from.FormPanel