#40800: 解答 python


n0970616056@gmail.com (CIOU-HE-CHEN)

學校 : 不指定學校
編號 : 273811
來源 : [111.253.1.171]
最後登入時間 :
2024-06-14 11:55:43
a024. 最大公因數(GCD) | From: [27.247.62.93] | 發表日期 : 2024-06-13 20:45

解答

def gcd_euclidean(a, b): while b: a, b = b, a % b return a # 读取输入 input_numbers = input().split() a = int(input_numbers[0]) b = int(input_numbers[1]) # 计算最大公因数 result = gcd_euclidean(a, b) # 输出结果 print(result)

思路

當然可以,以下是這段程式碼的詳細解釋: ### 函數部分 ```python def gcd_euclidean(a, b): while b: a, b = b, a % b return a ``` 這段程式碼定義了一個名為 `gcd_euclidean` 的函數,用來計算兩個整數 `a` 和 `b` 的最大公因數(GCD),使用的是歐幾里得算法。 #### 歐幾里得算法的步驟: 1. **初始化**:將兩個數字 `a` 和 `b` 作為輸入。 2. **迴圈**:當 `b` 不為 0 時,進行以下操作: - 將 `a` 設為 `b`。 - 將 `b` 設為 `a` 對 `b` 取餘數的結果。 3. **終止條件**:當 `b` 為 0 時,迴圈結束,此時的 `a` 就是兩個數字的最大公因數。 4. **返回結果**:返回 `a` 作為最大公因數。 ### 主程式部分 ```python # 读取输入 input_numbers = input().split() a = int(input_numbers[0]) b = int(input_numbers[1]) # 计算最大公因数 result = gcd_euclidean(a, b) # 输出结果 print(result) ``` 這段程式碼用來讀取輸入和計算結果。 #### 詳細步驟: 1. **讀取輸入**:使用 `input().split()` 讀取一行輸入,並將其拆分成一個列表。假設輸入為 "12 15",那麼 `input_numbers` 會是 `['12', '15']`。 2. **轉換數據類型**:將列表中的兩個元素轉換為整數,分別賦值給 `a` 和 `b`。在這個例子中,`a` 會是 12,`b` 會是 15。 3. **計算最大公因數**:調用 `gcd_euclidean(a, b)` 函數,計算 `a` 和 `b` 的最大公因數,並將結果存儲在 `result` 變量中。 4. **輸出結果**:使用 `print(result)` 輸出計算結果。 ### 總結 這段程式碼實現了一個簡單而高效的計算兩個整數最大公因數的功能,使用了歐幾里得算法。通過讀取用戶輸入的兩個數字,並調用 `gcd_euclidean` 函數來計算它們的最大公因數,最後將結果輸出。

 
ZeroJudge Forum