最大公因数GCD-ユークリッドアーク除算(+最小公倍数)
2634 ワード
ユークリッドアークほう
2つの自然数の最大承諾数のアルゴリズムを求めます
2つの自然数a,b(a>b)がaをbで割った残りの数をrと呼ぶ場合、GCD(a,b)=GCD(b,r),「rが0の場合、bは最大公約数である.」この原理を利用したアルゴリズム.
GCD(24,16)=GCD(16,8)=GCD(8,0)GCD(24,16)=GCD(16,8)=GCD(8,0)GCD(24,16)=GCD(16,8)=GCD(8,0)
最大公約数=8
インプリメンテーション
💜 さいきかんすう
O(logN)O(logN)O(logN)
最大公倍数
GCDを求めるコードを記述すれば,最大公倍数が容易に得られる.
https://coding-factory.tistory.com/599
2つの自然数の最大承諾数のアルゴリズムを求めます
2つの自然数a,b(a>b)がaをbで割った残りの数をrと呼ぶ場合、GCD(a,b)=GCD(b,r),「rが0の場合、bは最大公約数である.」この原理を利用したアルゴリズム.
GCD(24,16)=GCD(16,8)=GCD(8,0)GCD(24,16)=GCD(16,8)=GCD(8,0)GCD(24,16)=GCD(16,8)=GCD(8,0)
最大公約数=8
インプリメンテーション
💜 さいきかんすう
def GCD(a,b) :
if b == 0 : return a
else : return GCD(b,a%b)
💜 複文def GCD(a,b) :
while True :
r = a % b
if r == 0 : return b
a = b; b = r
時間の複雑さO(logN)O(logN)O(logN)
最大公倍数
GCDを求めるコードを記述すれば,最大公倍数が容易に得られる.
def LCM(a,b) :
return a*b/GCD(a,b)
参考文献https://coding-factory.tistory.com/599
Reference
この問題について(最大公因数GCD-ユークリッドアーク除算(+最小公倍数)), 我々は、より多くの情報をここで見つけました https://velog.io/@jaenny/최대공약수-GCD-유클리드-호제법-최소공배수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol