全文大概1000字,大概3分多钟读完
我们在使用c++打比赛或者是去写程序的时候通常会使用c++的STL,其中就有包含最大公约数和最小公倍数的函数,即 gcd() 和 lcm() 十分简单,作为一些程序员认为最简单的编程语言Python它会不会也有呢?答案是肯定的。
Python的函数不同于c++的STL库中的东西使用起来要加上一些特定的库的 #include 写法,它使用的是 import + 库 的写法,先引用一个库,将库中的函数使用好即可。
Python解决最大公约数问题比解决最小公倍数问题简单多了,因为解决最大公约数只是要应用 、math 库里的 gcd()函数即可,具体操作如下(我们就以简单的a,b两个数来求最大公约数):
import math #引用math库
a,b = map(int,input().split()) #输入a,b两个数,用input()函数也行
print(math.gcd(a,b))#运用gcd来进行计算最大公约数
结果截图:
很多人会问了,最大公倍数这么好算,那个最大公约数是不是也是这样呢?答案是否定的。因为其math的库中没有 lcm() 所以我们就要另外造一个函数,可以利用它和 gcd() 函数藕断丝连的关系来创造。创造过程如下:
首先通过 input()
函数获取用户输入的两个正整数 a
和 b
。
然后在添加代码的部分定义了一个函数 lcm
,在这个函数内部,利用了两个数的乘积等于这两个数的最大公约数与最小公倍数的乘积这一数学关系,先通过 math.gcd()
函数求出 a
和 b
的最大公约数,再用 a
和 b
的乘积除以最大公约数,从而得到最小公倍数。
最后调用自定义的 lcm
函数并输出 a
和 b
的最小公倍数。需要注意的是,这里虽然最后也调用了 math.lcm()
函数进行输出,但在实际情况中,如果是按照题目要求完整实现求最小公倍数的功能,应该是直接输出自定义函数 lcm
的结果而不需要再调用 math.lcm()
,这里可能是出题者为了验证结果是否正确而额外添加的调用 math.lcm()
进行对比输出的操作。
代码如下:
import math #引用math库
def lcm(a,b):
return a * b // math.gcd(a,b)#创造一个函数来计算
a,b = map(int,input().split()) #输入a,b两个数,用input()函数也行
print(lcm(a,b))#输出结果
运行截图:
关于Python最大公约数和最小公倍数的函数及使用就是差不多这样,大家要是感觉好的话记得加关注哦!!