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框架中自定义模版标签的示例
Jul 20 Python
深入理解Python中装饰器的用法
Jun 28 Python
详解Python的Lambda函数与排序
Oct 25 Python
python 获取字符串MD5值方法
May 29 Python
python爬取网页转换为PDF文件
Jun 07 Python
对python 操作solr索引数据的实例详解
Dec 07 Python
Python、 Pycharm、Django安装详细教程(图文)
Apr 12 Python
python实现Dijkstra算法的最短路径问题
Jun 21 Python
Python线上环境使用日志的及配置文件
Jul 28 Python
Django rstful登陆认证并检查session是否过期代码实例
Aug 13 Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
Apr 26 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的String类代码
2010/04/20 PHP
浅析php中三个等号(===)和两个等号(==)的区别
2013/08/06 PHP
使用php计算排列组合的方法
2013/11/13 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
PHP 计算两个时间段之间交集的天数示例
2019/10/24 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
js插件YprogressBar实现漂亮的进度条效果
2015/04/20 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
2016/01/04 Javascript
AngularJS 实现JavaScript 动画效果详解
2016/09/08 Javascript
使用JQuery中的trim()方法去掉前后空格
2016/09/16 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
Vue.js 和 MVVM 的注意事项
2016/11/07 Javascript
jQuery 判断元素整理汇总
2017/02/28 Javascript
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
基于Vuex无法观察到值变化的解决方法
2018/03/01 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
2019/04/12 Javascript
利用matplotlib+numpy绘制多种绘图的方法实例
2017/05/03 Python
Python Socket使用实例
2017/12/18 Python
Sanic框架Cookies操作示例
2018/07/17 Python
Python换行与不换行的输出实例
2020/02/19 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
Django serializer优化类视图的实现示例
2020/07/16 Python
python 实现图片裁剪小工具
2021/02/02 Python
浅谈盘点5种基于Python生成的个性化语音方法
2021/02/05 Python
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
性能测试工程师的面试题
2015/02/20 面试题
Java基础面试题
2014/07/19 面试题
驾驶员岗位职责
2014/01/29 职场文书
幼儿园五一活动方案
2014/02/07 职场文书
保密承诺书范文
2014/03/27 职场文书
解决Maven项目中 Invalid bound statement 无效的绑定问题
2021/06/15 Java/Android
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL
一起来学习Python的元组和列表
2022/03/13 Python