Python 求解最小公倍数
问题描述:给定两个正整数,求它们的最小公倍数。提高要求:三个以上数的求解。一、两个数的情况下求解最小公倍数1.穷举法lcm = min(m,n)max_num = max(m,n)for i in range(2,max_num+1):if lcm*i % m ==0 and lcm*i % n ==0:lcm *= ibreakpr......
·
写了那么久的博客,始于Python爬虫,目前专于Java学习,终于有了属于自己的小窝,欢迎各位访问我的个人网站。
问题描述:
给定两个正整数,求它们的最小公倍数。
提高要求:
三个以上数的求解。
一、两个数的情况下求解最小公倍数
1.穷举法
lcm = min(m,n)
max_num = max(m,n)
for i in range(2,max_num+1):
if lcm*i % m ==0 and lcm*i % n ==0:
lcm *= i
break
print(lcm)
2.公式 lcm = a*b//gcd(a, b)
def lcm(a,b):
gcd = lambda a, b: a if b == 0 else gcd(b, a % b)
return a*b//gcd(a,b)
二、多个数求解
1.穷举法
def get_lcm():
'''
求解三个数以上的最小公倍数
:return:
'''
L = [6,5,10,3]
L = [2, 8, 3, 50]
lcm = min(L)
for i in L:
if lcm % i != 0:
for j in range(2,i+1):
if (lcm*j) % i == 0:
lcm *= j
break
return lcm
2.公式 lcm = a*b//gcd(a, b)
from functools import reduce
def get_lcm2():
L = [2, 8, 3, 50]
def lcm(a,b):
gcd = lambda a, b: a if b == 0 else gcd(b, a % b)
return a*b//gcd(a,b)
return reduce(lcm,L)
更多推荐
已为社区贡献13条内容
所有评论(0)