python最大公约数计算的程序代码_Python实现的求解最大公约数算法示例

本文实例讲述了Python实现的求解最大公约数算法。分享给大家供大家参考,具体如下:使用Python求解两个数的最大公约数的时候用到了前面介绍的分解质因式。其实,我写分解质因式程序的时候就是因为发现在实现最大公约数求解的过程中用到了这个功能。比较令我开心的是之前学的一点Python集合处理功能居然在这个时候也派上了用场,小程序的完成让人感觉比较舒心。代码实现如下:#!/usr/bin/python...
摘要由CSDN通过智能技术生成

本文实例讲述了Python实现的求解最大公约数算法。分享给大家供大家参考,具体如下:

使用Python求解两个数的最大公约数的时候用到了前面介绍的分解质因式。其实,我写分解质因式程序的时候就是因为发现在实现最大公约数求解的过程中用到了这个功能。

比较令我开心的是之前学的一点Python集合处理功能居然在这个时候也派上了用场,小程序的完成让人感觉比较舒心。

代码实现如下:

#!/usr/bin/python

from collections import Counter

def PrimeNum(num):

r_value =[] for i inrange(2,num+1):

for jin range(2,i):

if i % j == 0:

break

else:

r_value.append(i)

return r_value

def PrimeFactorSolve(num,prime_list):

for n inprime_list:

if num % n == 0:

return [n,num / n]def PrimeDivisor(num):

num_temp =num

prime_range= PrimeNum(num)

ret_value =[] while numnot in prime_range:

factor_list= PrimeFactorSolve(num,prime_range)

ret_value.append(factor_list[0])

num =factor_list[1] else:</

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,可以使用不同的方法来求解两个数的最大公约数。引用中的方法是列举法,即从两个数中较小的数开始,逐个列举可能的公约数,并找出最大的公约数。代码示例如下: a=int(input("please input the first number:")) b=int(input("please input the second number:")) p,q=min(a,b),max(a,b) lst=[] for i in range(1,p+1): if p%i==0 and q%i==0: lst.append(i) gcd=max(lst) print(f"{a}和{b}的最大公约数为{gcd}") 另一种方法是累乘法,即逐步找出两个数的所有公约数,再将这些公约数累乘起来得到最大公约数。引用中的代码示例如下: a=int(input("please input the first number:")) b=int(input("please input the second number:")) m,n=a,b t=1 for i in range(2,min(a,b)): while (a%i==0 and b%i==0): t*=i a/=i b/=i print(f"{m},{n}的最大公约数为:{t}") 另外,还有一种方法是更相减损术,即不断用较大数减去较小数,直到两个数相等或相差为1,此时的两个数即为最大公约数。这种方法在《九章算术》中提到。引用中的算法描述如下。 根据以上方法,你可以选择一种适合你的方式来求解Python中的最大公约数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python最大公约数的五种常见方法](https://blog.csdn.net/m0_69265664/article/details/125708828)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值