如何使用Python查找HCF或GCD?
本文将展示如何使用Python查找 HCF (最大公因数)或 GCD (最大公约数)。下面是完成此任务的各种方法:
- 使用For循环
-
使用欧几里得算法
-
使用While循环
-
使用递归(朴素方法)
-
处理HCF中的负数
阅读更多:Python 教程
什么是H.C.F.或G.C.D?
完全除尽给定两个数字的最大正整数被称为最高公因数 (H.C.F.) 或最大公约数 (G.C.D.) 。
示例 - 12和14的HCF为 2 。
使用For循环
算法(步骤)
请按照以下步骤执行所需任务:
- 创建一个变量来存储输入数字1。
-
创建另一个变量来存储输入数字2。
-
使用 if条件语句 检查第一个数字是否大于第二个数字。
-
如果条件为真,则将第二个数字视为较小的数字。
-
否则将第一个数字视为较小的数字。
-
使用 for循环 遍历从1到小数字的 range() 函数(range()函数返回一个以0开始并增加1(默认)并在给定数字之前停止的数字序列)。
-
使用 if条件语句 检查第一个和第二个数字是否能够通过模运算符 % (返回余数)和 and 运算符(如果两个条件都为真,则返回true)完全除尽索引(i)。
-
如果条件为真,则将相应的索引(i)值分配为HCF。
-
打印输入数字1和输入数字2的结果HCF。
示例
以下程序使用for循环返回输入数字1和输入数字2的HCF –
输出
在执行时,上述程序将生成以下输出−
使用欧几里得算法
例子
以下程序返回使用欧几里得算法的输入数字1和输入数字2的HCF –
输出
在执行时,上述程序将生成以下输出−
使用while循环(重复减法)
例子
以下程序使用while循环(重复减法方法)返回输入数字1和输入数字2的HCF –
输出
在执行时,上述程序将生成以下输出−
使用递归(朴素方法)
例子
以下程序使用递归返回输入数字1和输入数字2的HCF –
输出
执行以上程序后,将生成以下输出 −
处理HCF中的负数
两个数字的HCF永远不会是负数,因此如果任何一个数字是负数,只需将它们乘以-1使它们变为正数即可。
在此方法中,通过在欧几里得算法中有效使用取模运算符(%),可以改善重复减法的复杂性。
以下程序返回输入数字1&输入数字2的HCF,使用while处理HCF中的负数-
示例
输出
执行以上程序后,将生成以下输出 −
结论
在本文中,我们学习了如何使用四种不同的方法在Python中找到一个数的gcd / hcf。 我们还学习了在计算HCF时如何处理负数。