Heim >Backend-Entwicklung >Python-Tutorial >Beispiel eines in Python implementierten Algorithmus zur Lösung des größten gemeinsamen Teilers

Beispiel eines in Python implementierten Algorithmus zur Lösung des größten gemeinsamen Teilers

不言
不言Original
2018-05-03 13:53:002454Durchsuche

Dieser Artikel stellt hauptsächlich den in Python implementierten Algorithmus zum Lösen des größten gemeinsamen Teilers vor und beinhaltet Bedienkenntnisse im Zusammenhang mit mathematischen Operationen in Python. Freunde in Not können sich darauf beziehen

Dieser Artikel beschreibt den Algorithmus zum Lösen des größten gemeinsamen Teilers gemeinsamer Teiler in Python implementiert. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Wenn Sie Python verwenden, um den größten gemeinsamen Teiler zweier Zahlen zu finden, wird die zuvor eingeführte Zerlegung von Primfaktoren verwendet. Als ich das Programm zur Primfaktorzerlegung schrieb, fand ich tatsächlich heraus, dass diese Funktion bei der Lösung des größten gemeinsamen Teilers verwendet wurde.

Was mich freut, ist, dass die Python-Sammlungsverarbeitungsfunktion, die ich zuvor gelernt habe, zu diesem Zeitpunkt tatsächlich nützlich ist. Durch die Fertigstellung des kleinen Programms fühlen sich die Leute wohler.

Der Code ist wie folgt implementiert:

#!/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))

Das Ausführungsergebnis des Programms ist wie folgt:

E: WorkSpace

Das obige ist der detaillierte Inhalt vonBeispiel eines in Python implementierten Algorithmus zur Lösung des größten gemeinsamen Teilers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn