十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
函数定义:
在丁青等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站制作、成都网站制作 网站设计制作按需网站开发,公司网站建设,企业网站建设,品牌网站制作,营销型网站建设,外贸营销网站建设,丁青网站建设费用合理。
Common_multiple(number1, number2): # 求两个数的最小公倍数
Maximum_common_divisor(*number): # 求任意多个数的最小公倍数
Minimum_common_multiple(*number): # 求任意多个数的最大公因数
程序缩进如下:
程序缩进
运行结果展示:
运行结果
函数具体代码:缩进版本点击自取
def Common_multiple(number1, number2): # 求两个数的最小公倍数
while number1 % number2 != 0:
number1, number2 = number2, (number1 % number2)
return number2
def Maximum_common_divisor(*number): # 求任意多个数的最小公倍数
while len(number) 1:
number = [Common_multiple(number[i], number[i+1]) for i in range(0, len(number)-1)]
return number[0]
def Minimum_common_multiple(*number): # 求任意多个数的最大公因数
while len(number) 1:
number = [number[i]*number[i+1]/Common_multiple(number[i], number[i+1]) for i in range(0, len(number)-1)]
return number[0]
一、求最大公约数
用辗转相除法求最大公约数的算法如下:
两个正整数a和b(ab),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。比如10和25,25除以10商2余5,那么10和25的最大公约数,等同于10和5的最大公约数。
具体代码如下:def gongyue(a, b):
"""
欧几里得算法----辗转相除法
:param a: 第一个数
:param b: 第二个数
:return: 最大公约数
"""
如果最终余数为0 公约数就计算出来了
while(b!=0):
temp = a % b
a = b
b = temp
return a
二、求最小公倍数
求出a,b的最大公约数后,利用gongbei(a,b) = (a*b)/gongyue(a,b) 计算出两个数的最小公倍数:
求两个数的最小公倍数
def gongbei(a,b):
return a * b / gongyue(a, b)
a=3
b=5
#最小公倍数:
for x in range(1,1000):
if x*a%b == 0 :
print(x*a)
break
#最大公约数
for x in range(a, 1, -1):
if a % x == 0 and b % x == 0:
print(x)
break
#稍修改写成函数形式
先求出两个正整数的质数乘积(单独一个函数)。
参考输出,例:40返回值是{"2":3,"5":1}意思是2的3次方*5,就是合并,并且保留指数最大的就行。
def gcd(a, b): # 求最大公约数
x = a % b
while (x != 0):
a, b = b, x
x = a % b
return b
def lcm(a,b): # 求最小公倍数
return a*b//gcd(a,b)
扩展资料:
最小公倍数的适用范围:分数的加减法,中国剩余定理(正确的题在最小公倍数内有解,有唯一的解)。因为,素数是不能被1和自身数以外的其它数整除的数;素数X的N次方,是只能被X的N及以下次方,1和自身数整除。所以,给最小公倍数下一个定义:S个数的最小公倍数,为这S个数中所含素因子的最高次方之间的乘积。
参考资料来源:百度百科-最小公倍数
最小公倍数:
最小公倍数
如有帮助,请采纳!!!
def fun(num1, num2): # 定义一个函数, 两个形参
if num1 num2: # 判读两个整数的大小,目的为了将大的数作为除数,小的作为被除数
num1, num2 = num2, num1 # 如果if条件满足,则进行值的交换
vari1 = num1 * num2 # 计算出两个整数的乘积,方便后面计算最小公倍数
vari2 = num1 % num2 # 对2个整数进行取余数
while vari2 != 0: # 判断余数是否为0, 如果不为0,则进入循环
num1 = num2 # 重新进行赋值,进行下次计算
num2 = vari2
vari2 = num1 % num2 # 对重新赋值后的两个整数取余数
# 直到 vari2 等于0,得到最到公约数就退出循环
vari1 /= num2 # 得出最小公倍数
print("最大公约数为:%d" % num2) # 输出
print("最小公倍数为:%d" % vari1) # 输出
---------------------
作者:yancelyq
来源:CSDN
原文:
版权声明:本文为博主原创文章,转载请附上博文链接!