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制作花瓣网美女图片爬虫
Oct 28 Python
python动态网页批量爬取
Feb 14 Python
Python编程求质数实例代码
Jan 31 Python
python根据list重命名文件夹里的所有文件实例
Oct 25 Python
Python设计模式之备忘录模式原理与用法详解
Jan 15 Python
Python同步遍历多个列表的示例
Feb 19 Python
Python常见的pandas用法demo示例
Mar 16 Python
使用Python实现毫秒级抢单功能
Jun 06 Python
python 字典 setdefault()和get()方法比较详解
Aug 07 Python
把vgg-face.mat权重迁移到pytorch模型示例
Dec 27 Python
Python sep参数使用方法详解
Feb 12 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
Feb 21 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 读取大文件的X行到Y行内容的实现代码
2013/06/24 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
php中二维数组排序问题方法详解
2015/08/28 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
JavaScript 继承详解 第一篇
2009/08/30 Javascript
关于可运行代码无法正常执行的使用说明
2010/05/13 Javascript
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
Javascript小技巧之生成html元素
2014/05/15 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
xmlplus组件设计系列之网格(DataGrid)(10)
2017/05/05 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
JS异步函数队列功能实例分析
2017/11/28 Javascript
element-ui 关于获取select 的label值方法
2018/08/24 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
Python中多线程及程序锁浅析
2015/01/21 Python
发布你的Python模块详解
2016/09/15 Python
python3+PyQt5实现拖放功能
2018/04/24 Python
python实现简单井字棋游戏
2020/03/04 Python
pycharm安装及如何导入numpy
2020/04/03 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
使用CSS禁止textarea调整大小功能的方法
2015/03/13 HTML / CSS
Carter’s官方旗舰店:美国受欢迎的婴童服装品牌
2018/01/21 全球购物
现代生活方式的家具和装饰:Dot & Bo
2018/12/26 全球购物
项目资料员岗位职责
2013/12/10 职场文书
岗位廉洁从业承诺书
2014/03/28 职场文书
十佳文明家庭事迹
2014/05/25 职场文书
创业计划书之熟食店
2019/10/16 职场文书
python模块与C和C++动态库相互调用实现过程示例
2021/11/02 Python