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爬虫框架Scrapy安装使用步骤
Apr 01 Python
Python写入数据到MP3文件中的方法
Jul 10 Python
Python 数据处理库 pandas进阶教程
Apr 21 Python
查看django执行的sql语句及消耗时间的两种方法
May 29 Python
python去重,一个由dict组成的list的去重示例
Jan 21 Python
eclipse创建python项目步骤详解
May 10 Python
python输出电脑上所有的串口名的方法
Jul 02 Python
python 含子图的gif生成时内存溢出的方法
Jul 07 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
Jan 18 Python
PyCharm无法引用自身项目解决方式
Feb 12 Python
django xadmin 管理器常用显示设置方式
Mar 11 Python
Python3自定义json逐层解析器代码
May 11 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实现下载CSS文件中的图片
2015/12/06 PHP
PHP 二维数组和三维数组的过滤
2016/03/16 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
php生出随机字符串
2017/07/06 PHP
php微信公众号开发之二级菜单
2018/10/20 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
浅谈PHP5.6 与 PHP7.0 区别
2019/10/09 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
基于jquery DOM写的类似微博发布的效果
2012/10/20 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
JavaScript实现页面跳转的几种常用方式
2015/11/28 Javascript
javascript事件冒泡简单示例
2016/06/20 Javascript
jQuery progressbar通过Ajax请求实现后台进度实时功能
2016/10/11 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
2016/12/15 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
2020/02/11 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
Python 多个图同时在不同窗口显示的实现方法
2019/07/07 Python
详解python pandas 分组统计的方法
2019/07/30 Python
基于Python实现大文件分割和命名脚本过程解析
2019/09/29 Python
意大利和国际最佳时尚品牌:Drestige
2019/12/28 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
Static Nested Class 和 Inner Class的不同
2013/11/28 面试题
汽车专业学生自我评价
2014/01/19 职场文书
致标枪运动员广播稿
2014/02/06 职场文书
绿色学校实施方案
2014/03/31 职场文书
房产公证委托书范本
2014/09/20 职场文书
2014年团队工作总结
2014/11/24 职场文书
2015世界地球日活动总结
2015/02/09 职场文书
2019已经过半,你知道年中工作总结该怎么写吗?
2019/07/03 职场文书