最大公約數和最小公倍數(自定義函數)


def gcd(x,y):
    "求x和y的最大公約數,應用輾轉相除法"
    #輾轉相除法:被除數和除數的最大公約數等於除數和余數的最大公約數;
    #暴力窮舉法:a=min(x,y)---另一種寫法:a=x if x<y else y,每次循環a-=1直到x%a==0 and y%a==0
    #最小公倍數=x*y//a
    #真分數的判斷:分子分母的最大公約數為1
    if x<y:
        x,y=y,x #使得x成為max
    while x%y!=0:
        r=x%y
        x=y
        y=r
    return y  #y為最大公約數
#求任意多個數的最大公約數
m=list(input().split())#沒有把字符串變成數值型
#m=eval(input())#這樣就行,雖然沒有list但是返回值就是list的格式,cuole
alst=[]
for o in m:
    o=eval(o)
    alst.append(o)  #實現了alst里面是m的數值形式
gcdxy=gcd(alst[0],alst[1])
for i in range(2,len(alst)):
    gcdxy=gcd(gcdxy,alst[i])
print(gcdxy)

 

#輸出以40為分母的全部真分數
lst=[]
for i in range(1,40):
    if gcd(40,i)==1:
        lst.append(i)
for m in lst:
    print('{}/40'.format(m),end=' ')

 


免責聲明!

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



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