zoukankan      html  css  js  c++  java
  • 两种求最大公约数和最小公倍数的方法

    def hu(n1,n2):
        if n1 < n2:
            n1,n2 = n2,n1
        while n2:
            n1,n2 = n2,n1%n2
        return n1
    
    def min(n1,n2):
        if n1 < n2:
            n1,n2 = n2,n1
        x = n1 * n2
        while n2:
            n1,n2 = n2,n1%n2
        return x//n1
    
    a = 5
    b = 10
    
    print(hu(a,b))
    print(min(a,b))

    这是一种较为简便的算法,通过判断两个数字的大小进行置换,置换后进行求模赋值,当n2参数为假时,n1的值就是最大公约数了,最小公倍数的值通过两个数相乘在除以最大公约数就可以了。

    def hcf(x, y):
        """该函数返回两个数的最大公约数"""
    
        # 获取最小值
        if x > y:
            smaller = y
        else:
            smaller = x
    
        for i in range(1, smaller + 1):
            if ((x % i == 0) and (y % i == 0)):
                hcf = i
                print(hcf)
    
        return hcf
    
    
    # 用户输入两个数字
    num1 = int(input("输入第一个数字: "))
    num2 = int(input("输入第二个数字: "))
    
    print(num1, "", num2, "的最大公约数为", hcf(num1, num2))

    这种算法是求最大公约数,判断两个数字的大小,然后遍历1到smaller的数字,通过判断哪个数字能够同时满足两个数字取模都为0,然后在便利范围结束的时候返回的值就是能同时满足条件的最大值,这个值就是两个数字的最大公约数。

  • 相关阅读:
    跨浏览器的事件处理程序(javascript高级程序设计第二版第十二章)
    json
    html5 本地存储Web Storage
    sicily 6497. 字符统计
    sicily 6415. linear correlation
    sicily 1154. Easy sort
    sicily 6496. 二维数组
    sicily 6423. 反向输出数字
    sicily 1636. show me the money
    sicily 1324. Score
  • 原文地址:https://www.cnblogs.com/s-1314-521/p/9770786.html
Copyright © 2011-2022 走看看