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同时向控制台和文件输出日志logging的方法
May 26 Python
python实现的守护进程(Daemon)用法实例
Jun 02 Python
python简单获取本机计算机名和IP地址的方法
Jun 03 Python
基于Python闭包及其作用域详解
Aug 28 Python
Python字典及字典基本操作方法详解
Jan 30 Python
使用python根据端口号关闭进程的方法
Nov 06 Python
python单例模式的多种实现方法
Jul 26 Python
Python占用的内存优化教程
Jul 28 Python
python如何提取英语pdf内容并翻译
Mar 03 Python
Python学习笔记之装饰器
Aug 06 Python
实现Python3数组旋转的3种算法实例
Sep 16 Python
Python爬虫如何破解JS加密的Cookie
Nov 19 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中在数据库中保存Checkbox数据(1)
2006/10/09 PHP
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
Yii调试SQL的常用方法
2014/07/09 PHP
Laravel 5 学习笔记
2015/03/06 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
图片之间的切换
2006/06/26 Javascript
点击文章内容处弹出页面代码
2009/10/01 Javascript
jquery中的$(document).ready()与window.onload的区别
2009/11/18 Javascript
this和执行上下文实现代码
2010/07/01 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
JS显示表格内指定行html代码的方法
2015/03/31 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
第二章之Bootstrap 页面排版样式
2016/04/25 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
详解Nodejs之npm&amp;package.json
2017/06/15 NodeJs
简单实现js进度条加载效果
2020/03/25 Javascript
vue 运用mock数据的示例代码
2017/11/07 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
2018/09/13 Javascript
Element input树型下拉框的实现代码
2018/12/21 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
django自定义Field实现一个字段存储以逗号分隔的字符串
2014/04/27 Python
python中的函数用法入门教程
2014/09/02 Python
python类中super()和__init__()的区别
2016/10/18 Python
python 生成图形验证码的方法示例
2018/11/11 Python
python 实现倒排索引的方法
2018/12/25 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
Django3中的自定义用户模型实例详解
2020/08/23 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
欧洲最大的球衣网上商店:Kitbag
2017/11/11 全球购物
PyQt QMainWindow的使用示例
2021/03/24 Python
护理学中专毕业生求职信
2013/11/11 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书