Maison >développement back-end >Tutoriel Python >Exemple d'algorithme de résolution du plus grand diviseur commun implémenté en Python
Cet article présente principalement l'algorithme de résolution du plus grand diviseur commun implémenté en Python, impliquant des compétences opérationnelles liées aux opérations mathématiques Python. Les amis dans le besoin peuvent s'y référer
Cet article décrit l'algorithme de résolution du plus grand diviseur commun. diviseur commun implémenté en Python. Partagez-le avec tout le monde pour référence, les détails sont les suivants :
Lorsque vous utilisez Python pour trouver le plus grand diviseur commun de deux nombres, la décomposition des facteurs premiers introduite précédemment est utilisée. En fait, lorsque j’ai écrit le programme de factorisation première, c’est parce que j’ai découvert que cette fonction était utilisée dans le processus de résolution du plus grand diviseur commun.
Ce qui me rend heureux, c'est que la fonction de traitement de collection Python que j'ai apprise auparavant est réellement utile en ce moment. L'achèvement du petit programme permet aux gens de se sentir plus à l'aise.
Le code est implémenté comme suit :
#!/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))
Le résultat de l'exécution du programme est le suivant :
E : Espace de travail
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!