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 解析html之BeautifulSoup
Jul 07 Python
python回调函数用法实例分析
May 09 Python
在Python的Flask框架中验证注册用户的Email的方法
Sep 02 Python
Python用sndhdr模块识别音频格式详解
Jan 11 Python
使用python编写简单的小程序编译成exe跑在win10上
Jan 15 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
Apr 19 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
Flask教程之重定向与错误处理实例分析
Aug 01 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
Jan 02 Python
基于python实现上传文件到OSS代码实例
May 09 Python
Alpine安装Python3依赖出现的问题及解决方法
Dec 25 Python
解决Pycharm 运行后没有输出的问题
Feb 05 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
德劲1104的电路分析与改良
2021/03/01 无线电
用PHP编程开发“虚拟域名”系统
2006/10/09 PHP
PHP5中GD库生成图形验证码(有汉字)
2013/07/28 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
javascript 有趣而诡异的数组
2009/04/06 Javascript
让Firefox支持event对象实现代码
2009/11/07 Javascript
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
jquery ui bootstrap 实现自定义风格
2014/11/14 Javascript
JS随机调用指定函数的方法
2015/07/01 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
基于Node.js实现压缩和解压缩的方法
2018/02/13 Javascript
用js实现放大镜效果
2020/10/28 Javascript
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
videocapture库制作python视频高速传输程序
2013/12/23 Python
使用python调用浏览器并打开一个网址的例子
2014/06/05 Python
Python松散正则表达式用法分析
2016/04/29 Python
Python模拟三级菜单效果
2017/09/11 Python
Python正则表达式知识汇总
2017/09/22 Python
django1.11.1 models 数据库同步方法
2018/05/30 Python
网页布局中CSS样式无效的十个重要原因详解
2017/08/10 HTML / CSS
HTML5实现预览本地图片
2016/02/17 HTML / CSS
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
社区工作感言
2014/02/21 职场文书
审计专业自荐信范文
2014/04/21 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
政风行风评议整改方案
2014/09/15 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
车辆安全隐患排查制度
2015/08/05 职场文书
用JS写一个发布订阅模式
2021/11/07 Javascript
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏