Python分解質量因数,最大公約数,最小公倍数

4430 ワード

以上の3つの問題を解決するために、振り回され、様々な解法を経て、最後に最適化されたアルゴリズムを得た.
# author:Linger


'''
                  ,     ,     
  :       1    ,  1     ,          .
               ,       ( )         ,
        ( )          .       :      
        ,1 -1  .      1.
'''

def getdiv(n = 36):
    '''
    :param n:           
    :return:        
    '''
    i = 2
    _div = []
    while i <= n:
        while n % i == 0:
            _div.append(i)
            n = n/i
        i = i+1
    return _div



def getLCM(a=5, b=3):
    '''
    :param a:        
    :param b:        
    :return:              
    '''

    return a*b//getHCF(a, b)

def getHCF(m=319, n=377):
    '''
    #                   
    :param m:     
    :param n:     
    :return:     
    '''
    while m % n > 0:
        p = m % n
        m = n
        n = p
    return n


print(getLCM(13, 39))
print(getdiv())
print(getHCF(58, 377))