ホームページ >バックエンド開発 >Python チュートリアル >Pythonで実装した最大公約数を解くアルゴリズムの例
この記事では、Python で実装された最大公約数を解くアルゴリズムを主に紹介し、Python の数学的演算に関連する操作スキルを必要としている方は参考にしてください。
この記事では、Python で実装された最大公約数を解くアルゴリズムについて説明します。参考のために皆さんと共有してください。詳細は次のとおりです。
Python を使用して 2 つの数値の最大公約数を求める場合、前に紹介した素因数の分解が使用されます。実は素因数分解のプログラムを書いたときに、最大公約数を解く過程でこの関数が使われていることがわかったからです。
嬉しいのは、以前学んだPythonのコレクション処理関数がこの時に実際に役に立ち、小さなプログラムが完成したことで気持ちが楽になったことです。
コードは次のように実装されます:
#!/usr/bin/python from collections import Counter def PrimeNum(num): r_value =[] for i inrange(2,num+1): for jin range(2,i): if i % j == 0: break else: r_value.append(i) return r_value def PrimeFactorSolve(num,prime_list): for n inprime_list: if num % n == 0: return [n,num / n] def Primepisor(num): num_temp =num prime_range= PrimeNum(num) ret_value =[] while numnot in prime_range: factor_list= PrimeFactorSolve(num,prime_range) ret_value.append(factor_list[0]) num =factor_list[1] else: ret_value.append(num) return Counter(ret_value) def Maxpisor(num1,num2): dict1 =Primepisor(num1) dict2 =Primepisor(num2) max_pisor= 1 for key1 indict1: if key1 in dict2: if dict1[key1] < dict2[key1]: max_pisor*= (key1 ** dict1[key1]) else: max_pisor*= (key1 ** dict2[key1]) return max_pisor print(Maxpisor(12,18)) print(Maxpisor(7,2)) print(Maxpisor(7,13)) print(Maxpisor(24,56)) print(Maxpisor(63,81))
プログラムの実行結果は次のとおりです:
E:WorkSpace
以上がPythonで実装した最大公約数を解くアルゴリズムの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。