欧拉函数公式及其证明(共3页).doc

上传人:飞****2 文档编号:14220667 上传时间:2022-05-03 格式:DOC 页数:3 大小:20.50KB
返回 下载 相关 举报
欧拉函数公式及其证明(共3页).doc_第1页
第1页 / 共3页
欧拉函数公式及其证明(共3页).doc_第2页
第2页 / 共3页
点击查看更多>>
资源描述

《欧拉函数公式及其证明(共3页).doc》由会员分享,可在线阅读,更多相关《欧拉函数公式及其证明(共3页).doc(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上欧拉函数 :欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数 n ,小于 n 且和 n 互质的正整数(包括 1)的个数,记作 (n) 。 完全余数集合:定义小于 n 且和 n 互质的数构成的集合为 Zn ,称呼这个集合为 n 的完全余数集合。 显然 |Zn| (n) 。有关性质:对于素数 p ,(p) = p -1 。对于两个不同素数 p, q ,它们的乘积 n = p * q 满足 (n) = (p -1) * (q -1) 。这是因为 Zn = 1, 2, 3, . , n - 1 - p, 2p, . , (q - 1) * p - q, 2q,

2、. , (p - 1) * q , 则 (n) = (n - 1) - (q - 1) - (p - 1) = (p -1) * (q -1) (p) * (q) 。欧拉定理 :对于互质的正整数 a 和 n ,有 a(n) 1 mod n 。证明:( 1 ) 令 Zn = x1, x2, ., x(n) , S = a * x1 mod n, a * x2 mod n, . , a * x(n) mod n , 则 Zn = S 。 因为 a 与 n 互质, xi (1 i (n) 与 n 互质, 所以 a * xi 与 n 互质,所以 a * xi mod n Zn 。 若 i j , 那么

3、 xi xj,且由 a, n互质可得 a * xi mod n a * xj mod n (消去律)。( 2 ) a(n) * x1 * x2 *. * x(n) mod n (a * x1) * (a * x2) * . * (a * x(n) mod n (a * x1 mod n) * (a * x2 mod n) * . * (a * x(n) mod n) mod n x1 * x2 * . * x(n) mod n 对比等式的左右两端,因为 xi (1 i (n) 与 n 互质,所以 a(n) 1 mod n (消去律)。注:消去律:如果 gcd(c,p) = 1 ,则 ac bc

4、 mod p a b mod p 。费马定理 :若正整数 a 与素数 p 互质,则有 ap - 1 1 mod p 。证明这个定理非常简单,由于 (p) = p -1,代入欧拉定理即可证明。*补充:欧拉函数公式( 1 ) pk 的欧拉函数对于给定的一个素数 p , (p) = p -1。则对于正整数 n = pk ,(n) = pk - pk -1 证明: 小于 pk 的正整数个数为 pk - 1个,其中 和 pk 不互质的正整数有p * 1,p * 2,.,p * (pk - 1-1) 共计 pk - 1 - 1 个 所以 (n) = pk - 1 - (pk - 1 - 1) = pk -

5、 pk - 1 。( 2 ) p * q 的欧拉函数假设 p, q是两个互质的正整数,则 p * q 的欧拉函数为(p * q) = (p) * (q) , gcd(p, q) = 1 。证明: 令 n = p * q , gcd(p,q) = 1 根据中国余数定理,有 Zn 和 Zp Zq 之间存在一一映射(我的想法是: a Zp , b Zq b * p + a * q Zn 。) 所以 n 的完全余数集合的元素个数等于集合 Zp Zq 的元素个数。 而后者的元素个数为 (p) * (q) ,所以有 (p * q) = (p) * (q) 。( 3 ) 任意正整数的欧拉函数任意一个整数 n

6、 都可以表示为其素因子的乘积为: I n = piki (I 为 n 的素因子的个数) i=1根据前面两个结论,很容易得出它的欧拉函数为: I I (n) = piki-1(pi-1) = n (1 - 1 / pi) i=1 i=1对于任意 n 2,2 | (n) ,因为必存在 pi -1 是偶数。/直接求解欧拉函数int euler(int n) /返回euler(n) int res=n,a=n; for(int i=2;i*i1) res=res/a*(a-1); return res;/筛选法打欧拉函数表 #define Max int eulerMax;void Init() euler1=1; for(int i=2;iMax;i+) euleri=i; for(int i=2;iMax;i+) if(euleri=i) for(int j=i;jMax;j+=i) eulerj=eulerj/i*(i-1);/先进行除法是为了防止中间数据的溢出 专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁