Python實現的求解最大公約數演算法樣本

來源:互聯網
上載者:User
這篇文章主要介紹了Python實現的求解最大公約數演算法,涉及Python數學運算相關操作技巧,需要的朋友可以參考下

本文執行個體講述了Python實現的求解最大公約數演算法。分享給大家供大家參考,具體如下:

使用Python求解兩個數的最大公約數的時候用到了前面介紹的分解質因式。其實,我寫分解質因式程式的時候就是因為發現在實現最大公約數求解的過程中用到了這個功能。

比較令我開心的是之前學的一點Python集合處理功能居然在這個時候也派上了用場,小程式的完成讓人感覺比較舒心。

代碼實現如下:

#!/usr/bin/pythonfrom collections import Counterdef 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_valuedef 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_pisorprint(Maxpisor(12,18))print(Maxpisor(7,2))print(Maxpisor(7,13))print(Maxpisor(24,56))print(Maxpisor(63,81))

程式的執行結果如下:

E:\WorkSpace\01_程式設計語言\03_Python\math>python max_pisor.py
6
1
1
8
9

通過驗證,計算結果準確。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.