互質數序列
若兩個數 \(a\) 與 \(b\) 的最大公因數(GCD)為 1,則它們互質。 GCD 是可以同時整除給定兩個數 \(a\) 與 \(b\) 的最大正整數。例如,7 和 9 的 GCD 為 1,所以它們互質。
給定兩個串列 list1 與 list2,你的任務是建立一個新的串列 coprimes,其中包含 list1 與 list2 中所有互質的數對。
但在此之前,你需要依照下列演算法撰寫一個計算 GCD 的函式:
- 檢查是否 \(b = 0\)
- 若為真,回傳 \(a\) 作為 \(a\) 與 \(b\) 的 GCD
- 若為否,前往步驟 2
- 進行代換:\(a \leftarrow b\) 且 \(b \leftarrow a \% b\)
- 回到步驟 1
本練習屬於課程
Python 程式面試題實作練習
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
def gcd(a, b):
# Define the while loop as described
while ____:
temp_a = ____
a = ____
b = ____
# Complete the return statement
return ____