计算最大公约数与最小公倍数

🎉摘要:Python 是一门解释型、面向对象、动态类型的高级编程语言,由荷兰程序员 Guido van Rossum 于 1991 年发布,核心设计理念是优雅、明确、简单。

该示例将通过 Python3 计算一个数的最大公约数与最小公倍数。

(1) 最大公约数(GCD)

最大公约数是指几个数共有的因数里,最大的那一个。用来约分、化简分数、分组、分配东西。例如:

  • 12 的因数:1, 2, 3, 4, 6, 12

  • 18 的因数:1, 2, 3, 6, 9, 18

  • 公因数:1, 2, 3, 6

  • 最大公约数 = 6

(2)最小公倍数(LCM)

最小公倍数是指几个数共有的倍数里,最小的那一个(大于 0)。用来通分、算同时相遇、重复周期问题。例如:

  • 12 的倍数:12, 24, 36, 48…

  • 18 的倍数:18, 36, 54…

  • 公倍数:36, 72…

  • 最小公倍数 = 36

注意:

对任意两个正整数 a、b:

a×b = 最大公约数×最小公倍数

比如 12×18 = 216,6×36=216,相等。

方式一:自己手搓

示例代码:

def gcd(a, b):
    # 辗转相除法求最大公约数
    while b:
        a, b = b, a % b
    return a

def lcm(a, b):
    # 最小公倍数 = 两数乘积 // 最大公约数
    return a * b // gcd(a, b)

# 测试
if __name__ == '__main__':
    x = 12
    y = 18

    print(f"数字1:{x}")
    print(f"数字2:{y}")
    print(f"最大公约数(GCD):{gcd(x, y)}")
    print(f"最小公倍数(LCM):{lcm(x, y)}")

运行结果:

数字1:12
数字2:18
最大公约数(GCD):6
最小公倍数(LCM):36

方式二:使用内置 math 模块

示例代码:

import math

def lcm(a, b):
    return a * b // math.gcd(a, b)

if __name__ == '__main__':
    x = 12
    y = 18

    print(f"数字1:{x}")
    print(f"数字2:{y}")
    print(f"最大公约数(GCD):{math.gcd(x, y)}")
    print(f"最小公倍数(LCM):{lcm(x, y)}")

运行结果:

数字1:12
数字2:18
最大公约数(GCD):6
最小公倍数(LCM):36

  


说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号