首页 > 编程语言 >最大公约数算法真的无趣?一看就会的算法代码示例

最大公约数算法真的无趣?一看就会的算法代码示例

时间:2023-02-03 16:59:16浏览次数:43  
标签:两个 因数分解 示例 最大公约数 算法 除法 公因数

最大公约数算法不是很无聊,计算最大公约数是数学中一个重要的概念,可以用于判断两个数是否互质、求分数的约分等,在很多领域都有广泛的应用。具体如下:

  1. 判断两个数是否互质:两个数的最大公约数为1,说明这两个数是互质的。
  2. 求分数的约分:将分子和分母的最大公约数约分掉,使得分数的值不变。
  3. 求同余方程的最小正整数解:例如求ax ≡ b (mod m) 的最小正整数解。
  4. 求两个数的最小公倍数:两个数的乘积除以它们的最大公约数。
  5. 判断数的因数:通过求数的最大公约数判断是否为该数的因数。

 

最大公约数(Greatest Common Divisor, GCD)算法是求两个或多个整数的最大公因数的方法。常用的算法有辗转相除法、更相减损术、穷举法、质因数分解法等。

 

辗转相除法:

  • 如果两个整数不相等,则将大数除以小数,将余数代替较小数再进行同样的除法操作。
  • 重复上述操作,直到两个数相等,则两个数的最大公约数就是这两个数。

更相减损术:

  • 将两个数中的较大数减去较小数,再把差代替较大数,进行同样的减法操作。
  • 重复上述操作,直到两个数相等,则两个数的最大公约数就是这两个数。

穷举法:

  • 从1到较小数遍历,判断是否是两个数的公因数,如果是则记录。
  • 得到的公因数中,最大的即为两个数的最大公约数。

质因数分解法:

  • 将两个数的质因数分解,并列出它们的公因数。
  • 公因数中的最大值即为两个数的最大公约数。

下面是最大公约数算法的 Python 代码示例:

def gcd(a, b):
while b:
a, b = b, a % b
return a

这是一种辗转相除法求最大公约数的方法,它每次通过计算余数,来降低计算复杂度。

最大公约数算法

 

转载说明:本文部分内容引用自电脑监控软件https://www.vipshare.com/archives/40243,转载请提供出处

 

标签:两个,因数分解,示例,最大公约数,算法,除法,公因数
From: https://www.cnblogs.com/llllaaaaiiii1234/p/17089789.html

相关文章

  • LeetCode刷题,代码随想录算法训练营Day3| 链表理论基础 203.移除链表元素 707.设计链
    链表理论基础链表是通过指针串联在一起的线性结构,每个节点由一个数据域和一个指针域构成。链表的类型单链表双链表有两个指针域,一个指向下一个节点,一个指向上一个节......
  • 【算法训练营day39】LeetCode62. 不同路径 LeetCode63. 不同路径II
    LeetCode62.不同路径题目链接:62.不同路径独上高楼,望尽天涯路第一次接触二维的dp数组,初始化会麻烦一点,dp数组表示的是机器人移动到第i行第j列格子的所有路径数。class......
  • ifc4x3 附录E示例-LinearPlacement_2
    ifc4x3 附录E示例-LinearPlacement_2示例概述意图此场景演示了IfcLinearPlacement与IfcAxi2PlacementLinear和IfcPointByDistanceExpression的组合使用。 先决条件......
  • ST算法(区间最值)
    ST算法是解决RMQ(区间最值)问题,它能在O(nlogn)的时间预处理,然后酶促查询的复杂度是O(1)。其原理是倍增,f[i][j]表示从i位起的2^j个数中的最大数,即[i,i+2^j-1]中的最大值。首先,我们......
  • 机器学习——k-近邻算法(KNN)、
    k-近邻算法(kNN),它的工作原理是:存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新......
  • 6.2RLE算法的机制
    数据后,不难看出有不少字符是重复出现的。在字符后面加上重复出现次数,AAAAAABBCDDEEEEEF就可以用A6B2C1D2E5F1来表示。A6B2CID2E5F1是12个字符也就是12字节,因此结果就将原文......
  • 算法--2023.2.2
    1.力扣72--编辑距离classSolution{//典型动态对话问题publicintminDistance(Stringword1,Stringword2){intm=word1.length(),n=word2.......
  • Snowflake 雪花算法补充
    雪花算法,要保持全局唯一,必须要指定唯一的dataCenterId和workerId,正常这两个数都是0-31之间的一个值。如果我们自己的商用节点,应该依赖注册中心,手动的为每隔节点指定......
  • LeetCode 对称二叉树算法题解 All In One
    LeetCode对称二叉树算法题解AllInOne对称二叉树原理图解101.SymmetricTree对称二叉树https://leetcode.com/problems/symmetric-tree/https://leetcode.c......
  • 代码随想录算法训练营day2
    代码随想录打卡day2今日学习内容(2月2日)学习有序数组的平方并完成题目学习长度最小的子数组并完成题目学习螺旋矩阵并完成题目......