欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python求最小公倍數(shù)與最大公約數(shù)代碼示例與解題思路

 更新時間:2024年11月22日 10:32:24   作者:鈴兒響叮當不響  
這篇文章主要給大家介紹了Python求最小公倍數(shù)與最大公約數(shù)代碼示例與解題思路的相關資料,包括迭代法、使用math模塊的lcm和gcd函數(shù)以及輾轉相除法,需要的朋友可以參考下

最小公倍數(shù)的幾種解題方法

方法1

代碼思路

  • 輸入?yún)?shù):接收兩個整數(shù) m 和 n。
  • 確定較大值:判斷 m 和 n 哪個更大,將較大的值存儲在變量 bigger 中。
  • 尋找最小公倍數(shù)
    • 使用一個 while 循環(huán),從 bigger 開始不斷遞增。
    • 在每次循環(huán)中,檢查當前 bigger 是否能同時被 m 和 n 整除。
    • 如果可以,則返回當前的 bigger 作為最小公倍數(shù)。
    • 如果不可以,則將 bigger 增加 1,繼續(xù)下一次循環(huán)。
  • 輸出結果:調(diào)用函數(shù)并打印最小公倍數(shù)
    def f1(m, n):  
        # 確定 m 和 n 中較大的值  
        if m > n:  
            bigger = m  
        else:  
            bigger = n  
          
        # 從較大的值開始,不斷遞增,尋找最小公倍數(shù)  
        while True:  
            # 檢查當前的 bigger 是否能同時被 m 和 n 整除  
            if bigger % m == 0 and bigger % n == 0:  
                # 如果可以,返回當前的 bigger 作為最小公倍數(shù)  
                return bigger  
            else:  
                # 如果不可以,將 bigger 增加 1,繼續(xù)循環(huán)  
                bigger += 1  
      
    # 調(diào)用函數(shù)并打印結果  
    # 示例:計算 23 和 74 的最小公倍數(shù)  
    print("%d 是最小公倍數(shù)" % f1(23, 74))

方法2

代碼思路

  • 輸入?yún)?shù):接收兩個整數(shù) m 和 n
  • 確定較大值:判斷 m 和 n 哪個更大,將較大的值存儲在變量 bigger 中。
  • 尋找最小公倍數(shù)
    • 初始化一個計數(shù)器 i 為1。
    • 使用一個 while 循環(huán),不斷遞增 i。
    • 在每次循環(huán)中,計算 bigger * i,并檢查這個值是否能同時被 m 和 n 整除。
    • 如果可以,則返回 bigger * i 作為最小公倍數(shù)。
    • 如果不可以,則繼續(xù)下一次循環(huán)。
  • 輸出結果:調(diào)用函數(shù)并打印最小公倍數(shù)。
def f2(m, n):  
    # 確定 m 和 n 中較大的值,作為起點可以減少一些不必要的乘法運算  
    if m > n:  
        bigger = m  
    else:  
        bigger = n  
      
    # 初始化計數(shù)器 i  
    i = 1  
      
    # 從1開始不斷遞增,尋找最小公倍數(shù)  
    while True:  
        # 計算當前 bigger * i 的值  
        current_value = bigger * i  
          
        # 檢查當前的 current_value 是否能同時被 m 和 n 整除  
        if current_value % m == 0 and current_value % n == 0:  
            # 如果可以,返回當前的 current_value 作為最小公倍數(shù)  
            return current_value  
        else:  
            # 如果不可以,將計數(shù)器 i 增加 1,繼續(xù)循環(huán)  
            i += 1  
  
# 調(diào)用函數(shù)并打印結果  
# 示例:計算 23 和 74 的最小公倍數(shù)  
print("%d 是最小公倍數(shù)" % f2(23, 74))

方法3

代碼思路

  • 導入math模塊math模塊提供了許多數(shù)學函數(shù),包括計算最大公約數(shù)(GCD)和最小公倍數(shù)(LCM)的函數(shù)。
  • 使用math.lcm函數(shù):直接調(diào)用math.lcm函數(shù)來計算兩個數(shù)的最小公倍數(shù),并打印結果。
  • 使用GCD計算LCM:根據(jù)最小公倍數(shù)和最大公約數(shù)的關系,LCM(a, b) = abs(a * b) // GCD(a, b),來計算兩個數(shù)的最小公倍數(shù),并打印結果。這里使用了整除運算符//來確保結果是整數(shù)。
import math  
  
# 使用math.lcm函數(shù)計算23和74的最小公倍數(shù),并打印結果  
print("%d是最小公倍數(shù)" % math.lcm(23, 74))  
  
# 使用GCD計算LCM  
# 根據(jù)公式 LCM(a, b) = abs(a * b) // GCD(a, b)  
# 計算23和74的乘積的絕對值(雖然這里23和74都是正數(shù),絕對值不是必需的,但為了一般性可以加上)  
# 然后除以它們的最大公約數(shù),得到最小公倍數(shù)  
lcm_using_gcd = abs(23 * 74) // math.gcd(23, 74)  
# 打印結果  
print("%d是最小公倍數(shù)" % lcm_using_gcd)

最大公約數(shù)的幾種解題方法

方法1

代碼思路

  • 輸入?yún)?shù):接收兩個整數(shù)mn
  • 確定較小值:判斷mn哪個更小,將較小的值存儲在變量smaller中。
  • 尋找最大公約數(shù)
    • smaller遞減到1。
    • 在每次循環(huán)中,檢查當前的數(shù)是否能同時被mn整除。
    • 如果可以,則返回這個數(shù)作為最大公約數(shù)。
    • 如果不可以,則繼續(xù)下一次循環(huán)。
  • 輸出結果:調(diào)用函數(shù)并打印最大公約數(shù)
def f1(m, n):  
    # 確定 m 和 n 中較小的值  
    if m < n:  
        smaller = m  
    else:  
        smaller = n  
      
    # 從 smaller 遞減到 1,尋找最大公約數(shù)  
    for i in range(smaller, 0, -1):  # 注意這里的步長是-1,表示遞減  
        # 檢查當前的 i 是否能同時被 m 和 n 整除  
        if m % i == 0 and n % i == 0:  
            # 如果可以,返回 i 作為最大公約數(shù)  
            return i  
  
# 調(diào)用函數(shù)并打印結果  
# 示例:計算 12 和 36 的最大公約數(shù)  
print("%d是最大公約數(shù)" % f1(12, 36))

方法2

代碼思路

  • 輸入?yún)?shù):接收兩個整數(shù)mn。
  • 確定較小值:使用min函數(shù)找出mn中的較小值,存儲在變量smaller中。
  • 尋找公約數(shù)
    • 初始化一個空列表f來存儲找到的公約數(shù)。
    • 使用for循環(huán)遍歷從1到smaller的所有整數(shù)。
    • 在每次循環(huán)中,檢查當前的整數(shù)是否能同時被mn整除。
    • 如果可以,將這個整數(shù)添加到列表f中。
  • 返回最大公約數(shù):使用max函數(shù)找出列表f中的最大值,并返回它。
  • 輸出結果:調(diào)用函數(shù)并打印返回的最大公約數(shù)。
def f2(m, n):  
    # 確定 m 和 n 中的較小值  
    smaller = min(m, n)  
      
    # 初始化一個空列表來存儲公約數(shù)  
    f = []  
      
    # 遍歷從1到smaller的所有整數(shù)  
    for i in range(1, smaller + 1):  
        # 檢查當前的整數(shù)是否能同時被 m 和 n 整除  
        if m % i == 0 and n % i == 0:  
            # 如果可以,將這個整數(shù)添加到列表 f 中  
            f.append(i)  
      
    # 返回列表 f 中的最大值,即最大公約數(shù)  
    return max(f)  
  
# 調(diào)用函數(shù)并打印返回的最大公約數(shù)  
# 示例:計算 12 和 36 的最大公約數(shù)  
print("%d是最大公約數(shù)" % f2(12, 36))

方法3(輾轉相除法)

代碼思路

  • 輸入檢查與調(diào)整
    • 函數(shù)f1接收兩個整數(shù)mn作為輸入。
    • 為了確保m不小于n,若m小于n,則兩者進行交換。
  • 計算最大公約數(shù)
    • 使用while循環(huán),條件是n不為0。
    • 在循環(huán)內(nèi)部,利用元組解包同時更新mn的值:m被賦值為當前的n,而n被賦值為m % n(即m除以n的余數(shù))。
    • 此過程會不斷迭代,直至n變?yōu)?。
  • 返回結果
    • n為0時,m中存儲的即為所求的最大公約數(shù),函數(shù)返回m。
def f3(m, n):  
    # 若m小于n,則交換m和n的值,確保m不小于n(此步驟可選)  
    if m < n:  
        m, n = n, m  # 利用元組解包進行值交換  
      
    # 當n不為0時,持續(xù)進行循環(huán)計算  
    while n:  
        # 利用元組解包同時更新m和n的值  
        # m被更新為當前的n,n被更新為m除以n的余數(shù)  
        m, n = n, m % n  
      
    # 當n為0時,m即為所求的最大公約數(shù)  
    return m  
  
# 調(diào)用函數(shù)f3,并打印出12和24的最大公約數(shù)  
print(f3(12, 24))  # 輸出結果應為12

方法4

在Python中,math模塊提供了一個名為gcd的函數(shù),該函數(shù)能夠高效地計算出兩個或多個整數(shù)的最大公約數(shù)(GCD, Greatest Common Divisor)

import math  
  
# 調(diào)用math.gcd函數(shù)計算3139和2117的最大公約數(shù)  
result = math.gcd(3139, 2117)  
  
# 打印結果  
print(result)

總結 

到此這篇關于Python求最小公倍數(shù)與最大公約數(shù)的文章就介紹到這了,更多相關Python求最小公倍數(shù)與最大公約數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python打包發(fā)布pypi及更新全部流程

    python打包發(fā)布pypi及更新全部流程

    這篇文章主要介紹了python打包發(fā)布pypi及更新全部流程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • python實現(xiàn)通過pil模塊對圖片格式進行轉換的方法

    python實現(xiàn)通過pil模塊對圖片格式進行轉換的方法

    這篇文章主要介紹了python實現(xiàn)通過pil模塊對圖片格式進行轉換的方法,涉及Python中pil模塊的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • python中ransac算法擬合圓的實現(xiàn)

    python中ransac算法擬合圓的實現(xiàn)

    RANSAC是一種用于從包含異常數(shù)據(jù)的樣本數(shù)據(jù)集中計算數(shù)學模型參數(shù)的算法,本文主要介紹了python中ransac算法擬合圓的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2025-01-01
  • 詳解Python中文件路徑

    詳解Python中文件路徑

    絕對路徑就是文件的真正存在的路徑,是指從硬盤的根目錄(盤符)開始,進行一級級目錄指向文件,這篇文章主要介紹了Python中文件路徑,需要的朋友可以參考下
    2023-02-02
  • 使用Python快速搭建HTTP服務和文件共享服務的實例講解

    使用Python快速搭建HTTP服務和文件共享服務的實例講解

    今天小編就為大家分享一篇使用Python快速搭建HTTP服務和文件共享服務的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python異步操作MySQL示例【使用aiomysql】

    Python異步操作MySQL示例【使用aiomysql】

    這篇文章主要介紹了Python異步操作MySQL,結合實例形式分析了Python安裝及使用aiomysql針對mysql數(shù)據(jù)庫異步操作相關實現(xiàn)技巧,需要的朋友可以參考下
    2019-05-05
  • python連接clickhouse的端口問題及解決

    python連接clickhouse的端口問題及解決

    這篇文章主要介紹了python連接clickhouse的端口問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python自動操作神器PyAutoGUI的使用教程

    Python自動操作神器PyAutoGUI的使用教程

    這篇文章主要是想和大家來聊一聊Python如何利用自動操作 GUI 神器——PyAutoGUI在桌面實現(xiàn)自動化操作,感興趣的小伙伴可以了解一下
    2022-06-06
  • 使用Python玩轉串口(基于pySerial問題)

    使用Python玩轉串口(基于pySerial問題)

    這篇文章主要介紹了使用Python玩轉串口(基于pySerial問題),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python_tkinter彈出對話框創(chuàng)建2

    python_tkinter彈出對話框創(chuàng)建2

    這篇文章主要介紹了python_tkinter彈出對話框創(chuàng)建,上以篇文章我們簡單的對對話框創(chuàng)建做了簡單介紹,本文將繼續(xù)更多相關內(nèi)容,需要的小伙伴可以參考一下
    2022-03-03

最新評論