最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

方法1

代碼思路

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

方法3

代碼思路

  • 導(dǎo)入math模塊math模塊提供了許多數(shù)學(xué)函數(shù),包括計算最大公約數(shù)(GCD)和最小公倍數(shù)(LCM)的函數(shù)。
  • 使用math.lcm函數(shù):直接調(diào)用math.lcm函數(shù)來計算兩個數(shù)的最小公倍數(shù),并打印結(jié)果。
  • 使用GCD計算LCM:根據(jù)最小公倍數(shù)和最大公約數(shù)的關(guān)系,LCM(a, b) = abs(a * b) // GCD(a, b),來計算兩個數(shù)的最小公倍數(shù),并打印結(jié)果。這里使用了整除運算符//來確保結(jié)果是整數(shù)。
import math  
  
# 使用math.lcm函數(shù)計算23和74的最小公倍數(shù),并打印結(jié)果  
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)  
# 打印結(jié)果  
print("%d是最小公倍數(shù)" % lcm_using_gcd)

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

方法1

代碼思路

  • 輸入?yún)?shù):接收兩個整數(shù)mn
  • 確定較小值:判斷mn哪個更小,將較小的值存儲在變量smaller中。
  • 尋找最大公約數(shù)
    • smaller遞減到1。
    • 在每次循環(huán)中,檢查當(dāng)前的數(shù)是否能同時被mn整除。
    • 如果可以,則返回這個數(shù)作為最大公約數(shù)。
    • 如果不可以,則繼續(xù)下一次循環(huán)。
  • 輸出結(jié)果:調(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,表示遞減  
        # 檢查當(dāng)前的 i 是否能同時被 m 和 n 整除  
        if m % i == 0 and n % i == 0:  
            # 如果可以,返回 i 作為最大公約數(shù)  
            return i  
  
# 調(diào)用函數(shù)并打印結(jié)果  
# 示例:計算 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)中,檢查當(dāng)前的整數(shù)是否能同時被mn整除。
    • 如果可以,將這個整數(shù)添加到列表f中。
  • 返回最大公約數(shù):使用max函數(shù)找出列表f中的最大值,并返回它。
  • 輸出結(jié)果:調(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):  
        # 檢查當(dāng)前的整數(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(輾轉(zhuǎn)相除法)

代碼思路

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

總結(jié) 

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

相關(guān)文章

  • PyCharm安裝Markdown插件的兩種方法

    PyCharm安裝Markdown插件的兩種方法

    Markdown是一種可以使用普通文本編輯器編寫的標記語言,通過簡單的標記語法,它可以使普通文本內(nèi)容具有一定的格式。這篇文章主要介紹了PyCharm安裝Markdown插件的兩種方法,需要的朋友可以參考下
    2019-06-06
  • python實現(xiàn)socket客戶端和服務(wù)端簡單示例

    python實現(xiàn)socket客戶端和服務(wù)端簡單示例

    這篇文章主要介紹了python實現(xiàn)socket客戶端和服務(wù)端簡單示例,需要的朋友可以參考下
    2014-02-02
  • Python操作Neo4j圖數(shù)據(jù)庫的使用完整指南

    Python操作Neo4j圖數(shù)據(jù)庫的使用完整指南

    相比傳統(tǒng)數(shù)據(jù)庫,Neo4j查詢速度快10-100倍,而Python的簡潔語法讓開發(fā)如虎添翼,那么如何用Python連接Neo4j并實現(xiàn)節(jié)點和關(guān)系的增刪改查,下面小編就來和大家詳細介紹一下吧
    2025-05-05
  • 淺析Python中g(shù)lobal和nonlocal關(guān)鍵字的妙用

    淺析Python中g(shù)lobal和nonlocal關(guān)鍵字的妙用

    這篇文章主要來和大家一起深入探討Python中關(guān)鍵詞global和nonlocal的用法,包括詳細的示例代碼和實際應(yīng)用場景,感興趣的可以了解下
    2024-04-04
  • 如何修復(fù)使用 Python ORM 工具 SQLAlchemy 時的常見陷阱

    如何修復(fù)使用 Python ORM 工具 SQLAlchemy 時的常見陷阱

    SQLAlchemy 是一個 Python ORM 工具包,它提供使用 Python 訪問 SQL 數(shù)據(jù)庫的功能。這篇文章主要介紹了如何修復(fù)使用 Python ORM 工具 SQLAlchemy 時的常見陷阱,需要的朋友可以參考下
    2019-11-11
  • 如何實現(xiàn)在jupyter notebook中播放視頻(不停地展示圖片)

    如何實現(xiàn)在jupyter notebook中播放視頻(不停地展示圖片)

    這篇文章主要介紹了如何實現(xiàn)在jupyter notebook中播放視頻(不停地展示圖片),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • PyTorch一小時掌握之基本操作篇

    PyTorch一小時掌握之基本操作篇

    這篇文章主要介紹了PyTorch一小時掌握之基本操作篇,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 關(guān)于python中DLIB包無法安裝問題解決辦法

    關(guān)于python中DLIB包無法安裝問題解決辦法

    dlib一個在計算機視覺和機器學(xué)習(xí)領(lǐng)域尤其是人臉識別中廣泛應(yīng)用的庫,其安裝過程往往令開發(fā)者頭疼不已,這篇文章主要介紹了關(guān)于python中DLIB包無法安裝問題解決辦法,需要的朋友可以參考下
    2026-01-01
  • Python模塊加載優(yōu)化的多種方式

    Python模塊加載優(yōu)化的多種方式

    有一段時間我總覺得,自己寫的 Python 項目怎么越寫越沉,明明功能沒多幾個,但打開速度、執(zhí)行效率就像早高峰的地鐵,一步三挪,急死個人,那一刻我才意識到,我不是寫得慢,是“模塊加載方式”出了問題,所以本將和大家一起聊聊Python模塊加載優(yōu)化的多種方式
    2025-04-04
  • python目標檢測數(shù)據(jù)增強的代碼參數(shù)解讀及應(yīng)用

    python目標檢測數(shù)據(jù)增強的代碼參數(shù)解讀及應(yīng)用

    這篇文章主要為大家介紹了python目標檢測數(shù)據(jù)增強的代碼參數(shù)解讀及應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05

最新評論

高平市| 忻州市| 四子王旗| 沙湾县| 阳曲县| 武功县| 五华县| 遂平县| 宝山区| 于田县| 平江县| 定日县| 平乡县| 磐安县| 定南县| 潮州市| 肃宁县| 肥城市| 库尔勒市| 卫辉市| 金塔县| 阜城县| 黔东| 乐清市| 海城市| 天祝| 玛多县| 新民市| 兴仁县| 新郑市| 和田县| 新密市| 凌海市| 乐都县| 凤翔县| 永安市| 勐海县| 宜章县| 隆德县| 交城县| 济源市|