求解两个整数(不能是负数)的最大公约数(要求两数不能同时为0)

当两数都是0时,最大公约数为0

方式一:穷举法
 def GCU(m, n):
if not m:
return n
elif not n:
return m
elif m is n:
return m if m > n:
gcd = n
else:
gcd = m while m%gcd or n%gcd:
gcd -= 1 return gcd

方式二:相减法

 def GCU(m, n):
if not m:
return n
elif not n:
return m
elif m is n:
return m while m!=n:
if m>n:
m -= n
else:
n -= m return m

方式三:欧几里德辗转相除法

 def GCU(m, n):
if not m:
return n
elif not n:
return m
elif m is n:
return m while m%n:
m, n = n, m%n return n

方式四:欧几里德辗转相除法 递归实现

 def GCU(m,n):
if not n:
return m
else:
return GCU(n, m%n) if __name__ == '__main__':
a = int(input('Please input the first integers : '))
b = int(input('Please input the second integers : '))
result = GCU(a, b)
print('GCU = ', result)

python 最大公约数的更多相关文章

  1. Python 最大公约数的欧几里得算法及Stein算法

    greatest common divisor(最大公约数) 1.欧几里得算法 欧几里德算法又称辗转相除法,用于计算两个正整数a,b的最大公约数. 其计算原理依赖于下面的定理: 两个整数的最大公约数等 ...

  2. Python - 最大公约数算法

    # Python 3.6 # 最大公约数,最大公因子 # Greatest Common Divisor # 辗转相除法 def gcd(num1: object, num2: object) -&g ...

  3. python 最大公约数 最小公倍数

    def gongyueshu(m,n): if m<n: m,n=n,m elif m==n: return m if m/n==int(m/n): return n else: for i i ...

  4. Python代码样例列表

    扫描左上角二维码,关注公众账号 数字货币量化投资,回复“1279”,获取以下600个Python经典例子源码 ├─algorithm│       Python用户推荐系统曼哈顿算法实现.py│    ...

  5. python024 Python3 实例

    Python3 实例 以下实例在 Python3.4.3 版本下测试通过: Python Hello World 实例 Python 数字求和 Python 平方根 Python 二次方程 Pytho ...

  6. Python3 实例

    一直以来,总想写些什么,但不知从何处落笔. 今儿个仓促,也不知道怎么写,就把手里练习过的例子,整理了一下. 希望对初学者有用,都是非常基础的例子,很适合初练. 好了,Follow me. 一.Pyth ...

  7. 算法:欧几里得求最大公约数(python版)

    #欧几里得求最大公约数 #!/usr/bin/env python #coding -*- utf:8 -*- #iteration def gcd(a,b): if b==0: return a e ...

  8. python实现求最大公约数与最小公倍数

    记录python实现最大公约数&最小公位数两种算法 概念 最大公约数:指两个或多个整数共有约数中最大的一个 最小公倍数:两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就 ...

  9. 从错误中学python(4)——最小公约数与辗转相除法

    题目 给你两个正整数a和b, 输出它们的最大公约数 辗转相除法 辗转相除法的步骤 def gcd(b,a): b,a=a,b%a if a==0: return b else: return gcd( ...

随机推荐

  1. Android 自定义spinner下拉框实现

    一:前言本人参考博客:http://blog.csdn.net/jdsjlzx/article/details/41316417 最近在弄一个下拉框,发现Android自带的很难实现我的功能,于是去网 ...

  2. cocos2dx 入门

    1.设置环境变量 JAVA_HOME=C:\Program Files\Java\jdk1.7.0_17CLASSPATH=.;%JAVA_HOME%\lib;Path增加%JAVA_HOME%\bi ...

  3. html特殊字符

    平时写代码很少用到HTML的特殊字符,最常用的可能是 了,但有时在移动端为了节省时间,可能会用这些字符实现某种特殊效果,现整理如下: 使用方法: 这些字符属于unicode字符集,所以,你的文档需要声 ...

  4. mysqlroot密码忘记了,修改root密码

    1,停止MYSQL服务,CMD打开DOS窗口,输入 net stop mysql 2,在CMD命令行窗口,进入MYSQL安装目录 比如E:\Program Files\MySQL\MySQL Serv ...

  5. [转] vim自定义配置 和 在ubnetu中安装vim

    Ubuntu 12.04安装vim和配置   问题: ubuntu默认没有安装vim,出现: jyg@ubuntu:~$ vim test.cThe program 'vim' can be foun ...

  6. com.caucho.hessian.io.HessianProtocolException: is unknown code 解决方案

    问题: Cannot access Hessian remote service at [http://....../remote/syllabusService]; nested exception ...

  7. APP开发流程

    1.申请一个开发者账号: 2. App的idea形成: 3. App的主要功能设计: 4. App的大概界面构思和设计(使用流程设计): 5. 大功能模块代码编写: 6. 大概的界面模块编写: 7. ...

  8. Coursera台大机器学习课程笔记7 -- Noise and Error

    本章重点:  简单的论证了即使有Noise,机器依然可以学习,VC Dimension对泛化依然起作用:介绍了一些评价Model效果的Error Measurement方法. 一论证即使有Noisy, ...

  9. Java表单中关于JavaScript的非空必输验证,你的程序和大牛有多少差距╮( ̄▽ ̄")╭

    var defaultEmptyOK = false; // スペース var whitespace = " \t\n\r "; function checkNull (theFi ...

  10. 移动端 iframe的使用

    对于iframe的设定有几个css属性常用 overflow:hidden;width:100%;当这样使用inframe内部中使用overflow,iframe会被撑开,导致width与overfl ...