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的Django框架中manage命令的使用与扩展
Apr 11 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
Sep 19 Python
pandas Dataframe行列读取的实例
Jun 08 Python
python 读取目录下csv文件并绘制曲线v111的方法
Jul 06 Python
pycharm 解除默认unittest模式的方法
Nov 30 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
Jul 19 Python
pytorch中的embedding词向量的使用方法
Aug 18 Python
详解Python图像处理库Pillow常用使用方法
Sep 02 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
如何用Python 加密文件
Sep 10 Python
2021年值得向Python开发者推荐的VS Code扩展插件
Jan 25 Python
教你使用Python pypinyin库实现汉字转拼音
May 27 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常用的url处理函数总结
2014/11/19 PHP
PHP输入输出流学习笔记
2015/05/12 PHP
Smarty模板简单配置与使用方法示例
2016/05/23 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
2016/05/30 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
2016/11/03 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
2017/02/20 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
[45:15]Optic vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
Python中functools模块函数解析
2017/03/12 Python
python操作excel文件并输出txt文件的实例
2018/07/10 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
Python定时任务工具之APScheduler使用方式
2019/07/24 Python
python等待10秒执行下一命令的方法
2020/07/19 Python
python 模拟登录B站的示例代码
2020/12/15 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
德国受欢迎的旅游和休闲网站:lastminute.de
2019/09/23 全球购物
Java基础类库面试题
2013/09/04 面试题
信息管理专业学生自荐信格式
2013/09/22 职场文书
技术总监管理职责范本
2014/03/06 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
老员工辞职信范文
2015/05/12 职场文书
水知道答案观后感
2015/06/08 职场文书
公司会议开幕词
2016/03/03 职场文书
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL