python独学で問題を記録する最大公約数

3657 ワード

タイトルの説明:2つの正の整数aとbをあげて、それらの最大公約数を出力します.
例えば、a=3、b=5
出力:1
以下のコードは、a,bに値が付与されていないため、参考の考え方にのみ使用されます.
def solve_it():
    for i in range(max(a,b),0,-1):
        if a%i==0 and b%i==0:
            return i
            break
print(solve_it())

ここにはもう一つの難しい方法があります.ユークリッドアルゴリズム---転がり相除法転がり相除法で最大公約数を求めるアルゴリズムは以下の通りです.
2つの正の整数aおよびb(a>b)は、それらの最大公約数が、aをbの残数cおよびbで割った最大公約数に等しい.例えば、10と25、25を10商2余5で割ると、10と25の最大公約数は、10と5の最大公約数に等しい.コードを直接貼ることができます
def maxyue(a, b):
	a,b=max(a,b),min(a,b)
	while(b!=0):
		temp = a % b
    	a = b
    	b = temp
    return a
print(maxyue(a,b))

それからブラシの問題はまた1つの関数math関数の中のgcd関数に出会って、コードは下を見て、簡単で乱暴です
from math import gcd
print(gcd(a,b))