python求两个数的最大公约数函数

引言:本人从小白自学python,为了测试基础学习效果,增加一定的促进,想通过参加全国计算机等级考试二级python来检验基础学习情况。在学习过程中,会将该过程编写的python小程序题目在此发表,希望找到共同学习的人一起讨论,可能发表的有许多不是很完善的地方,请大家指正。后期学习路线,还会继续通过参加一些社会类的考试来检验学习成果。高阶段学习的话,可能会参加一些python的比赛,或者自己接一些项目,然后会根据自己的情况将一些项目的Python程序在此分享。

一、本项目来源:全国计算机等级考试二级教程python语言程序设计,第四章课后习题第二程序题第2小题。最大公约数计算。获得两个整数,求出这两个整数的最大公约数和最小公倍数。最大公约数的计算一般使用辗转相除法,最小公倍数则使用两个数的乘积除以最大公约数。

二、先上传自己写的程序

def find_divisor(a,b):
    if a<b:
        a,b=b,a
    if a%b==0:
        return b
    else:
        return find_divisor(b,a%b)

三、解读程序语句。

这个程序简单,主要是要理解辗转相除法。欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数。应用领域有数学和计算机两个方面。计算公式gcd(a,b) = gcd(b,a mod b)。以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数。

if a<b:
        a,b=b,a

于是采用两个If判断函数,先判断两个数大小,

if a%b==0:
        return b
    else:
        return find_divisor(b,a%b)

再判断相除的余数是否为零,不为零就继续返回继续相除,直到获得余数为零。

四、程序运行效果

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python小白的逆袭之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值