Pythonコードで公約数を表示する。

def divisor_array(num):
    '''Extract divisors
    '''
    array = []
    for i in range(1,num+1):
        if num % i == 0:
            array.append(i)
    return array
def common_divisor_array(num,num2):
    '''Extract common divisor    
    '''
    array = []
    for item in num:
        if item in num2:
            array.append(item)
    return array   


num = divisor_array(56)
num2 = divisor_array(84)
num3 = common_divisor_array(num,num2)
print(num3)



2つの数の最大公約数を取得し、その約数を表示する=公約数となる。

その処理で表示するコードは以下

def common_divisor_array(num,num2):
    '''Extract common divisor    
    '''
    array = []
    min_int = num if num < num2 else num2
    b = True
    tmp = None
    while b:
        for i in range(2,min_int+1):
            if num % i == 0 and num2 % i == 0:
                num = num / i
                num2 = num2 / i
                if tmp == None:
                    tmp = i
                else:
                    tmp = tmp * i
                break
            if i == min_int:
                b =False
    array = divisor_array(tmp)
    return array   

def divisor_array(num):
    '''Extract divisors
    '''
    array = []
    for i in range(1,num+1):
        if num % i == 0:
            array.append(i)
    return array


num3 = common_divisor_array(18,24)


print(num3)