Python 最大公约数的欧几里得算法及Stein算法
greatest common divisor(最大公约数)
1.欧几里得算法
欧几里德算法又称辗转相除法,用于计算两个正整数a,b的最大公约数。
int gcd(int a,int b){if (a < b)std::swap(a, b);return b == 0 ? a : gcd(b, a % b); }
Python:
函数内递归
1 def gcd(a, b): 2 if a < b: 3 a, b = b, a 4 while b != 0: 5 a,b = b,a%b 6 return a
函数递归:
1 def gcd(a, b): 2 if b == 0: 3 return a 4 return gcd(b, a % b)
2.Stein算法:
1 def gcd_Stein(a, b): 2 if a < b: 3 a, b = b, a 4 if (0 == b): 5 return a 6 if a % 2 == 0 and b % 2 == 0: 7 return 2 * gcd_Stein(a/2, b/2) 8 if a % 2 == 0: 9 return gcd_Stein(a / 2, b) 10 if b % 2 == 0: 11 return gcd_Stein(a, b / 2) 12 13 return gcd_Stein((a + b) / 2, (a - b) / 2)
转载于:https://www.cnblogs.com/Dragon5/p/6401596.html
Python 最大公约数的欧几里得算法及Stein算法相关推荐
- Python:三种方法计算最大公约数和最小公倍数(欧几里德法、穷举法、stein算法)
Python:三种方法计算最大公约数和最小公倍数 1.穷举法 2.欧几里德法 3.Stein算法 题目:求取任意两个非负数(至多一个数为0)的最大公约数和最小公倍数: 参考资料:Python解决求最大 ...
- 最小公约数(欧几里得算法stein算法)
求最小公约数,最容易想到的是欧几里得算法,这个算法也是比较容易理解的,效率也是很不错的.也叫做辗转相除法. 对任意两个数a,b(a>b),d=gcd(a,b),如果b不为零,那么gcd(a,b) ...
- 枚举算法:求两个整数m,n(m>n)最大公约数的欧几里得算法描述。
求两个整数m,n(m>n)最大公约数的欧几里得算法描述. 思路: (1)m除以n得余数r:若r=0:则n为所求的最大公约数. (2)若r!=0,以n为m,r为n,继续(1). 流程图: 代码: ...
- 贫乏却最美好的三段论和神奇而不太严格的欧几里得算法-逻辑与算法之六
贫乏却最美好的三段论和神奇而不太严格的欧几里得算法- 逻辑与算法之六 三段论是没有数字计算的推理,虽然如有些学者所言,这个来自希腊语的术语"三段论"本身就有计算的涵义.但希腊语的这 ...
- 用欧几里得算法求最大公约数_欧几里得算法:GCD(最大公约数),用C ++和Java示例解释...
用欧几里得算法求最大公约数 For this topic you must know about Greatest Common Divisor (GCD) and the MOD operation ...
- 【最大公约数 GCD】 --- 常用四大算法(辗转相除法,穷举法,更相减损法,Stein算法)
[最大公约数 GCD] --- 常用的四大算法 1. 辗转相除法(又名欧几里德算法) 2. 穷举法(也称枚举法) 3. 更相减损法 (又名辗转相减法) 4. Stein算法 1. 辗转相除法(又名欧几 ...
- 数论 --- 约数和定理公式推导、最大公约数、欧几里得算法
试除法求约数 和<试除法判断一个数是不是质数>是一个道理 从小到大枚举所有的约数,如果当前数能整除这个数的话,说明这个数就是当前数的约数 优化,与<试除法判断质数>是一样的 如 ...
- 辗转相除法、更相减损法、Stein算法
最大公约数和最小公倍数求解,常用的方法是短除法进行因式分解,然后最大公约数是所有公共因子的乘积,最小公倍数是所有因子的乘积. 本质上求最小公倍数就是求最大公倍数:x=m*a, y=m*b:m是最大公约 ...
- java实现rsa欧几里得算法求d_RSA算法中利用欧几里得算法求d详细过程
文章转自新浪博客@任家 正文: RSA是第一个也是使用的最广泛的公钥加密算法,在1978年由R.Rivest.AdiShamir和Adleman三人发明, 并以他们的名字命名.RSA算法的安全性基于大 ...
- matlab扩展的欧几里得算法_最大公约数问题(欧几里得算法)
讨论范围为自然数(N)范围 题目描述:求m,n的最大公约数Xmax,m > n, m,n∈N 分析: m(0) =m(input), n(0) = n(input)求 Xmax 满足 : m(i ...
最新文章
- 内存泄漏和内存溢出的关系和区别
- error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
- mysql数据库加载太慢_mysql千万级数据库插入速度和读取速度的调整记录
- 你不会想到这个购物平台竟然能智能到这种程度
- 2008 R2 Server core 下的常用命令
- 《微软的软件测试之道》读书笔记 之 结构测试技术
- 【ACL2021】话题感知的语义建模
- 当前五大浏览器内核及简史
- hsql mybatis 表不存在_Mybatis-plus 查询数据库表时抛异常提示数据库表不存在
- Autojs.pro 7.0 - 免root 连点器
- ArrayList类的基本使用,完成案例随机不重复点名的程序
- 考点图文详解 - 网络管理(第十一章)
- 2019中南大学考研计算机考试,2019年中南大学计算机考研经验分享(复试+真题)...
- 计算机专业考研的好学校排名2015,计算机类专业考研最好的学校排名
- VMware Workstation16设置共享文件夹
- SEO网站优化步骤和技巧小结
- U-Net实现医学图像分割(pytorch)
- python 删除sheet_Python操作Excel删除一个Sheet
- 工作岗位必备技能总结
- android kotlin 上传文件 上传图片