题解 | #求最小公倍数#

求最小公倍数

https://www.nowcoder.com/practice/22948c2cad484e0291350abad86136c3

最小公倍数 = 两数之积除以最大公约数

最小公倍数和最大公约数算法以下四种:

方法一:暴力法

a, b = map(int, input().split())
gcd = 1
for i in range(2, min(a, b) + 1):
    if a % i == 0 and b % i == 0:
        gcd = i

print(a * b // gcd)

方法二:短除法

a, b = map(int, input().split())
tmp = 1
for i in range(2, min(a, b) + 1):
    while a % i == 0 and b % i == 0:
        # 逐一找出公共除数
        tmp *= i
        a //= i
        b //= i
print(tmp * a * b)
方法三:辗转相除法(非递归)
def lcm(a, b):
    # 最小公倍数
    while a % b:
        a, b = b, a % b
    return b

while True:
    try:
        a, b = map(int, input().split())
        print(int(a * b / lcm(a, b)))  # 最小公倍数 = 两数之积/最大公约数
        
    except:
        break

方法四:辗转相除法(递归)

def gcd(a, b):
    if b == 0:
        # base case
        return a
    else:
        return gcd(b, a % b)

while True:
    try:
        a, b = map(int, input().split())
        print(a * b // gcd(a, b))  # 最小公倍数 = 两数之积/最大公约数;注意整除
        
    except:
        break


全部评论

相关推荐

点赞 评论 收藏
分享
2025-12-27 16:01
重庆大学 Java
蛊界Go学长林剑行:项目部分,不光要展示技术栈的熟练程度,还要有架构意识+产品意识。知道每个业务逻辑落地的成果和技术选型的思考,不然纯炫技是没意义的,毕竟你用的这些技术大概率跟大厂实际项目不垂直,面试官不一定有兴趣
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务