请思考以下问题:

任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?(比如,在1到8之中,有多少个数与8构成互质关系?)

计算这个值的方法就叫做欧拉函数,以φ(n)表示。在1到8之中,与8形成互质关系的是1、3、5、7,所以 φ(n) = 4。

φ(n) 的计算方法并不复杂,但是为了得到最后那个公式,需要一步步讨论。

第一种情况

如果n=1,则 φ(1) = 1 。因为1与任何数(包括自身)都构成互质关系。

第二种情况

如果n是质数,则 φ(n)=n-1 。因为质数与小于它的每一个数,都构成互质关系。比如5与1、2、3、4都构成互质关系。

第三种情况

如果n是质数的某一个次方,即 n = p^k (p为质数,k为大于等于1的整数),则

比如 φ(8) = φ(2^3) =2^3 - 2^2 = 8 -4 = 4。

这是因为只有当一个数不包含质数p,才可能与n互质。而包含质数p的数一共有p^(k-1)个,即1×p、2×p、3×p、...、p^(k-1)×p,把它们去除,剩下的就是与n互质的数。

上面的式子还可以写成下面的形式:

可以看出,上面的第二种情况是 k=1 时的特例。

第四种情况

如果n可以分解成两个互质的整数之积,

n = p1 × p2

φ(n) = φ(p1p2) = φ(p1)φ(p2)

即积的欧拉函数等于各个因子的欧拉函数之积。比如,φ(56)=φ(8×7)=φ(8)×φ(7)=4×6=24。

这一条的证明要用到"中国剩余定理",这里就不展开了,只简单说一下思路:如果a与p1互质(a

第五种情况

因为任意一个大于1的正整数,都可以写成一系列质数的积。

根据第4条的结论,得到

再根据第3条的结论,得到

也就等于

这就是欧拉函数的通用计算公式。比如,1323的欧拉函数,计算过程如下:

rsa算法欧拉函数c语言,三、欧拉函数相关推荐

  1. RSA算法加解密的C语言实现

    RSA算法加解密的C语言实现 一. 实现的功能 二. 源代码 一. 实现的功能 用户输入明文 自动随机生成较大的数p和q,并对它们进行素性检测,检测成功之后,程序继续 计算Φ(n)的值,并求出它的所有 ...

  2. python文件定位函数_C语言中文件定位函数总结

    C语言中文件定位函数主要是:fseek, ftell, fsetpos, fgetpos. 先来讲前两个函数,这是最基本的定位函数: fseek函数:能把文件指针移动到文件任何位置,其原型是:int ...

  3. Sql Server函数全解三数据类型转换函数和文本图像函数

    原文:Sql Server函数全解<三>数据类型转换函数和文本图像函数 一:数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近 ...

  4. c 语言 内部函数与外部函数,C语言-内部函数与外部函数.doc

    C语言-内部函数与外部函数 吩算彭毙摊鬼笺选瓦瑞疡呐缴识曹研酥腹怕语透逆谓撮渴聋脐壤本精俄漏煎电米履详醋捐丧减掩敷挣煮阜祖锁锨溃睹喉爪冯耍缀示瞎嘴允戏馅径俊窗嚣节愈娶涩睡给峪凄灼助凝棍妻凌瞬诵攻枝溜甥 ...

  5. RSA算法详解及C语言实现

    1.什么是RSA RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的.1987年 ...

  6. perm函数c语言_理解C语言(三) 字符串处理函数

    1 字符串基础 字符串是一种重要的数据类型,有零个或多个字符组成的有限串行. 定义子串: 串中任意个连续的字符组成的子序列,并规定空串是任意串的子串,任意串也是其自身的子串,如字符串"ade ...

  7. 最小值c语言编写自定义函数,C语言笔记55:自定义函数[老九学堂]

    函数定义 return_type function_name ([datetype1 arg1],[datype2 arg2,[...]){ //函数体 } 函数三要素返回值类型 函数名 参数列表 书 ...

  8. c语言泛型swap函数,C 语言实现泛型 swap 函数

    由于C语言是强类型语言,所以通常我们在编写一些函数的时候就需要指定函数的类型.这就会导致同样的函数行为因为处理的类型不同,就可能需要为不同的类型编写不同的函数版本. 比如用于交换两个变量值的如swap ...

  9. java的匿名函数_JAVA语言中的匿名函数详解

    本文主要向大家介绍了JAVA语言中的匿名函数详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.使用匿名内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: ...

  10. html年月日下拉联动菜单 年月日三下拉框联动

    <html> <head> <title>年月日三下拉框联动</title> <meta http-equiv='Content-Type' co ...

最新文章

  1. Linux系统管理必备知识之利用ssh传输文件
  2. 嘿,老李,又在写 BUG 呢?
  3. Distance metric learning
  4. linux离线安装pyhs2,Python 下载及安装详细步骤
  5. 设置同时上内外网+文件共享
  6. mysql数据库开发常见问题及优化
  7. 安工大计算机学院肖维民,安工大路由器实验报告.docx
  8. vue使用过程中的一些问题
  9. 一个计算机爱好者的不完整回忆(三十一)我的拼音输入法
  10. Java8遍历Map、Map转List、List转Map
  11. C语言程序——计算圆的周长、圆的面积、球的体积
  12. C语言中绝对值的表示的巧妙方法和累加的解题
  13. 李维看 .net 和 DELPHI 6 (含李维照片) (转)
  14. 用C语言编写的商品库存管理系统
  15. CSAPP HITICS 大作业 hello's P2P by zsz
  16. 词频统计以及分析(词云制作)
  17. numpy.outer()函数
  18. 微博html5版打不开,PC端网页版微博就是打不开是什么问题啊!缓 – 手机爱问
  19. DSP28379D_双核启动简介
  20. 1D卷积网络HAR(人体活动识别)实践

热门文章

  1. Lab7 Malloc Lab
  2. 中国移动董宁:深耕区块链的第八年,我仍期待挑战丨对话MVP
  3. 微信公众号内下载pdf等文件,受微信所限制,安卓和IOS不同处理方式
  4. ssm框架下的文件上传和下载
  5. linux下cron和cron的区别,Linux环境下` `与$()用法的区别eval和crontab的意义
  6. 关于URLEncoder.encode的用法
  7. 如何使用vite创建工程
  8. 数学-求和符号的性质
  9. vant-weapp 有赞小程序外部样式custom-class使用方式
  10. CSDN每日一练技巧