이 글에서는 Python으로 구현된 최대 공약수를 푸는 알고리즘을 주로 소개하며, Python 수학 연산과 관련된 조작 능력이 필요한 친구들이 참고할 수 있습니다.
이 글의 예에서는 구현된 최대 공약수를 푸는 알고리즘이 설명되어 있습니다. 파이썬에서. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
Python을 사용하여 두 숫자의 최대 공약수를 찾을 때 앞서 소개한 소인수 분해가 사용됩니다. 사실 제가 소인수분해 프로그램을 작성했을 때, 최대공약수를 푸는 과정에서 이 함수가 사용되었다는 사실을 발견했습니다.
저를 행복하게 만드는 것은 이전에 배운 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!