Python实现的求解最大公约数算法示例


Posted in Python onMay 03, 2018

本文实例讲述了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:
   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_divisor
print(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

通过验证,计算结果准确。

Python 相关文章推荐
python打开文件并获取文件相关属性的方法
Apr 23 Python
python 2.6.6升级到python 2.7.x版本的方法
Oct 09 Python
Request的中断和ErrorHandler实例解析
Feb 12 Python
使用Python微信库itchat获得好友和群组已撤回的消息
Jun 24 Python
对python中GUI,Label和Button的实例详解
Jun 27 Python
python实现京东订单推送到测试环境,提供便利操作示例
Aug 09 Python
Python使用random模块生成随机数操作实例详解
Sep 17 Python
python 有效的括号的实现代码示例
Nov 11 Python
对pytorch的函数中的group参数的作用介绍
Feb 18 Python
python读写文件write和flush的实现方式
Feb 21 Python
python的列表List求均值和中位数实例
Mar 03 Python
Pycharm的Available Packages为空的解决方法
Sep 18 Python
Python实现的质因式分解算法示例
May 03 #Python
Python绘制3D图形
May 03 #Python
Python学习_几种存取xls/xlsx文件的方法总结
May 03 #Python
Python使用win32 COM实现Excel的写入与保存功能示例
May 03 #Python
python调用xlsxwriter创建xlsx的方法
May 03 #Python
Python基于opencv的图像压缩算法实例分析
May 03 #Python
python实现数据导出到excel的示例--普通格式
May 03 #Python
You might like
PHP 和 MySQL 基础教程(二)
2006/10/09 PHP
自定义php类(查找/修改)xml文档
2013/03/26 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
Div自动滚动到末尾的代码
2008/10/26 Javascript
jQuery 注意事项 与原因分析
2009/04/24 Javascript
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
理解Javascript_09_Function与Object
2010/10/16 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
2017/03/25 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
Node中使用ES6语法的基础教程
2018/01/05 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
vue-cli2.0转3.0之项目搭建的详细步骤
2018/12/11 Javascript
详解使用WebPack搭建React开发环境
2019/08/06 Javascript
JS实现随机抽选获奖者
2019/11/07 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
2020/04/26 Javascript
python重试装饰器示例
2014/02/11 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
python实现朴素贝叶斯分类器
2018/03/28 Python
Django框架之中间件MiddleWare的实现
2019/12/30 Python
python Canny边缘检测算法的实现
2020/04/24 Python
CSS3教程(5):网页背景图片
2009/04/02 HTML / CSS
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
将世界上最美丽的摄影作品转化为艺术作品:Photos.com
2017/11/28 全球购物
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
英文简历中的自我评价用语
2013/12/09 职场文书
《争吵》教学反思
2014/02/15 职场文书
环保志愿者活动方案
2014/08/14 职场文书
股东授权委托书范文
2014/09/13 职场文书
英文邀请函
2015/02/02 职场文书
小班教师个人总结
2015/02/05 职场文书
使用scrapy实现增量式爬取方式
2022/06/21 Python