本文实例讲述了Python实现的求解最大公约数算法。分享给大家供大家参考,具体如下:
使用Python求解两个数的最大公约数的时候用到了前面介绍的分解质因式。其实,我写分解质因式程序的时候就是因为发现在实现最大公约数求解的过程中用到了这个功能。
比较令我开心的是之前学的一点Python集合处理功能居然在这个时候也派上了用场,小程序的完成让人感觉比较舒心。
代码实现如下:
#!/usr/bin/pythonfrom collections import Counterdef 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_valuedef 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: ret_value.append(num) return Counter(ret_value)def Maxdivisor(num1,num2): dict1 =Primedivisor(num1) dict2 =Primedivisor(num2) max_divisor= 1 for key1 indict1: if key1 in dict2: if dict1[key1] < dict2[key1]: max_divisor*= (key1 ** dict1[key1]) else: max_divisor*= (key1 ** dict2[key1]) return max_divisorprint(Maxdivisor(12,18))print(Maxdivisor(7,2))print(Maxdivisor(7,13))print(Maxdivisor(24,56))print(Maxdivisor(63,81))
程序的执行结果如下:
E:\WorkSpace\01_编程语言\03_Python\math>python max_divisor.py
6
1
1
8
9
通过验证,计算结果准确。
PS:这里再为大家推荐一款本站相关在线工具供大家参考:
在线最小公倍数/最大公约数计算工具:
http://tools.jb51.net/jisuanqi/gbs_gys_calc
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串 *** 作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录 *** 作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
您可能感兴趣的文章:Java求解两个非负整数最大公约数算法【循环法与递归法】详解C语言求两个数的最大公约数及最小公倍数的方法C#获取两个数的最大公约数和最小公倍数示例递归法求最大公约数和最小公倍数的实现代码C++ 实现求最大公约数和最小公倍数JavaScript随机打乱数组顺序之随机洗牌算法浅析JavaScript中的常用算法与函数JavaScript实现的一个计算数字步数的算法分享JavaScript数据结构和算法之图和图算法JS笛卡尔积算法与多重数组笛卡尔积实现方法示例JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】 总结以上是内存溢出为你收集整理的Python实现的求解最大公约数算法示例全部内容,希望文章能够帮你解决Python实现的求解最大公约数算法示例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)