熱線電話:13121318867

登錄
首頁精彩閱讀Python實現利用最大公約數求三個正整數的最小公倍數示例
Python實現利用最大公約數求三個正整數的最小公倍數示例
2018-04-18
收藏

Python實現利用最大公約數求三個正整數的最小公倍數示例

本文實例講述了Python實現利用最大公約數求三個正整數的最小公倍數。分享給大家供大家參考,具體如下:

在求解兩個數的小公倍數的方法時,假設兩個正整數分別為a、b的最小公倍數為d,最大公約數為c。存在這樣的關系d=a*b/c。通過這個關系式,我們可以快速的求出三個正整數的最小公倍數。    
def divisor(a,b):
  c = a%b
  while c>0:
    a=b
    b=c
    c=a%b
  return b
x1 = input("input1:")
x2 = input("input2:")
x3 = input("input3:")
x0 = x1*x2/divisor(x1,x2)
x0 = x0*x3/divisor(x0,x3)
print "the least multiple is:%d"%x0
通過函數divisor求解兩個數的最大公約數,然后進行兩次求解最小公倍數即可知道三個正整數x1、x2、x3的最小公倍數。
其實可以通過divisor1函數求兩個數的最小公倍數,再進行嵌套調用實現三個數的最小公倍數。
divisor1函數如下:    
def divisor1(a,b):
  a1 = a
  b1 = b
  c = a%b
  while c>0:
    a=b
    b=c
    c=a%b
  return a1*b1/b

嵌套過程如下:    
x0 = divisor1(divisor1(x1,x2),x3)

可以求得三個正整數的最小公倍數。

Tip: a-bx=c,可知當一個數為a、b的公約數時,同時也是c的約數。

通過最大公約數即可得到最小公倍數的求解。    
def min_multi(a,b):
  return a*b/divisor1(a,b)

求解質數的函數:    
def isPrime(n):
  for i in range(2,int(n**0.5)+1):
    if n%i==0:
      return False
  return True

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢