Python基于辗转相除法求解最大公约数的方法示例
作者:grey_csdn 发布时间:2023-08-24 19:47:35
标签:Python,最大公约数
本文实例讲述了Python基于辗转相除法求解最大公约数的方法。分享给大家供大家参考,具体如下:
之前总结过一次高德纳TAOCP中的最大公约数求解,其实课后题中的算法修改要求实现的是辗转相除法求解最大公约数。
这个题目我最初的理解理解错了,自然也没有做出标准答案。现在按照标准答案的解答写一下相应的代码实现:
# -*- coding:utf-8 -*-
#! python2
def MaxCommDivisor(m,n):
while m * n != 0:
m = m % n
if m == 0:
return n
else:
n = n % m
if n == 0:
return m
print(MaxCommDivisor(55,120))
程序的执行结果:
交换一下两个数字的位置,代码如下:
# -*- coding:utf-8 -*-
#! python2
def MaxCommDivisor(m,n):
while m * n != 0:
m = m % n
if m == 0:
return n
else:
n = n % m
if n == 0:
return m
print(MaxCommDivisor(120,55))
程序的执行结果:
题目提示中提到了会降低效率,通过上面的代码来看,效率的损失应该是在除法以及判断上。在此,把之前算法的代码拿过来对比一下:
def CommDevisor(m,n):
r = m % n
while r != 0:
m = n
n = r
r = m % n
return n
print(CommDevisor(120,25))
运行结果:
新算法在循环中,多了一个除法以及比较操作。其实,比较的效率还是不错的,但是除法的运算会导致效率的降低。
PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:
在线一元函数(方程)求解计算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi
科学计算器在线使用_高级计算器在线计算:
http://tools.jb51.net/jisuanqi/jsqkexue
在线计算器_标准计算器:
http://tools.jb51.net/jisuanqi/jsq
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/grey_csdn/article/details/77414949
0
投稿
猜你喜欢
- TihuanWords.txt文档格式注意:同一行的词用单个空格隔开,每行第一个词为同行词的替换词。年休假 年假 年休究竟 到底回家场景 我
- 单位的小王学习SQL Server已有一段时间了,已经做了个不错的管理系统,有次小王让我帮着看看库的设计有没有问题,其间我发现他的安全意识非
- 数据库中提取长长的文章,总是有碍网页的排版布局。所以,想固定地提取一部分字符,然后后面有……替代。相关推荐:当标题不能显示完整的时候 1、原
- 首先我的环境已配置好:GO的目录结构是:add.gopackage calc//函数名必须大写首字母,不然外部包找不到func Add(a
- 1 . 如何让自己的本地APACHE服务器支持.htaccess 如何让自己的本地APACHE服务器支持”.htaccess”呢?其实只要简
- 踩坑记录:用pandas来做csv的缺失值处理时候发现奇怪BUG,就是excel打开csv文件,明明有的格子没有任何东西,当然,我就想到用p
- 简介除ide的执行方式外,命令行的方式执行Python脚本是参数化程序执行的一种常见且简单的方法,正确处理命令行参数,可以提供给包含某种参数
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&
- 我们都知道Jupyter notebook更换主题后看着会很舒服,但是有个问题主题更换后工具栏不显示了。usename$ jt -lAvai
- 代码如下import osimport cv2for i in range(1,201): if i==169 or i==18
- 什么多态:同一事物有多种形态为何要有多态=》多态会带来什么样的特性,多态性多态性指的是可以在不考虑对象具体类型的情况下而直接使用对象多态指的
- 较新的pip已经支持list --outdated了,所以记录一下新的方法:pip list --outdated --format=leg
- 引入Gridgrid=Grid() # 可以分别调整上下左右的位置,可以是百分比,也可以是具体像素,如pos_top="50px&
- 介绍 append()语法list.append( element )参数element:任何类型的元素列表「末尾」添加元素nam
- 本文实例讲述了Python图像处理实现两幅图像合成一幅图像的方法。分享给大家供大家参考,具体如下:将两幅图像合成一幅图像,是图像处理中常用的
- 本文实例讲述了Python3实现计算两个数组的交集算法。分享给大家供大家参考,具体如下:问题:给定两个数组,写一个方法来计算它们的交集。方案
- 持续集成(CI)作业可以产生大量的数据。当作业失败时,找出了什么问题可能是一个繁琐的过程,需要对日志进行调查以发现根本原因-这通常是在作业总
- DataList Web 服务器控件 通过使用模板显示数据源中的项。通过操作组成 DataList
- 本次我们选择的安卓游戏对象叫“单词英雄”,大家可以先下载这个游戏。游戏的界面是这样的:通过选择单词的意思进行攻击,选对了就正常攻击,选错了就
- 基于signal模块实现signal包负责在Python程序内部处理信号,典型的操作包括预设信号处理函数,暂停并等待信号,以及定时发出SIG