Python求三個數的最小公倍數


題目

求三個數的最小公倍數

思路

首先求兩個數的最小公倍數,再求這個最小公倍數與第三個數的最小公倍數就是最終結果

有兩種方案求兩個數的最小公倍數

1. 分解質因數,也是短除法(在程序上差別不大)

循環:從2開始遍歷到兩個數中的較小數字,如果能同時被兩個數整除,那么這個數同時是兩個數的因數
兩個數同時除以這個最小因數,再開始新一輪遍歷,直到兩個數互質
之后將這兩個互質的數和所有得到的因數相乘,結果就是兩個數的最小公倍數

2. 公式法

根據公式:兩個數的最小公倍數=兩個數的乘積/兩個數的最大公因數
最大公因數可以由分解質因數、輾轉相除法、更相減損法等得到
這里求最大公因數的分解質因數與求最小公倍數的不同之處在於,最小公倍數要將所有因數都乘起來,而 最大公因數只需要將不同的因數相乘(即出現相同的因數,只乘一次)

Python源代碼:

這里列出使用公式法求三個數的最小公倍數,而求最大公因數使用了輾轉相除法

def get_max_yinshu(x,y):
    while(True):
        if(x<y):
            x,y=y,x
        if(x%y==0):
            return int(y)
        else:
            temp=x%y
            x=y
            y=temp

a,b,c=map(int,input().split())

a_b=get_max_yinshu(a,b)
a_b=int((a*b)/a_b)
a_b_c=get_max_yinshu(a_b,c)
a_b_c=int((a_b*c)/a_b_c)
print(a_b_c)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM