最小公倍數
題目詳情
問題描述:
給你n組測試資料,每組測試資料有m(0
input:
輸入n,隨後有n行,每行開頭輸入m,m之後有m個正整數,相鄰數之間用空格隔開。
output:
每行輸出乙個數(該數在int範圍內,同時,數前面加個「case 1: 」,表示第幾個case,如「case 1: 6」),相鄰兩組結果之間有乙個空行,輸出完最後乙個結果後,再加乙個空行,具體形式見樣例。
答題說明
輸入樣例:
32 2 3
3 2 5 7
5 1 2 3 4 5
輸出樣例:
case 1: 6
case 2: 70
case 3: 60
思路:對於每一行,兩兩求取最小公倍數。
求最小公倍數則採用先求a,b的最小公約數gys,則最小公倍數為:a*b/gys。
求最小公約數採用輾轉相除法,遞迴呼叫自身得到。
**如下:
row = input()
matrix =
for i in range(row):
line = raw_input()
nums = line.split(" ")
#求最小公約數
def gys(a, b):
if(b == 0):
return a
else:
return gys(b, a%b)
#求最小公倍數
def gbs(a, b):
gy = gys(a,b)
return a * b / gy
index = 1
for array in matrix:
gb = int(array[0])
for each in array[1:]:
num = int(each)
gb = gbs(gb, num)
print("case "+str(index)+": "+str(gb)+"\n")
最小公倍數
最大公倍數最大是兩個數的乘積,兩個數互質 最大公約數是1 幾個數共有的倍數叫做這幾個數的公倍數,其中除0以外最小的乙個公倍數,叫做這幾個數的最小公倍數。記作 a,b 與最小公倍數相對應的概念是最大公約數,a,b的最大公約數記為 a,b 關於最小公倍數與最大公約數,我們有這樣的定理 a,b a,b a...
最小公倍數
問題描述 編寫一函式lcm,求解兩個正整數的最小公倍數。樣例輸入 乙個滿足題目要求的輸入樣例。例 3 5 樣例輸出 與上面樣例對應的輸出。例 15 資料規模和約定 輸入資料中每乙個數的範圍 例 兩個數都小於65536.演算法分析 一般來說,求兩個正整數a b的最小公倍數的演算法思路很簡單,主要分為以...
最小公倍數
求n個數的最小公倍數。輸入 輸入包含多個測試例項,每個測試例項的開始是乙個正整數n 2 n 10 然後是n個正整數。輸出為每組測試資料輸出它們的最小公倍數,每個測試例項的輸出佔一行。你可以假設最後的輸出是乙個32位的整數。樣例輸入 2 4 6 3 2 5 7 樣例輸出 1270 題目 zjgsuto...