Python程式查詢數字的最佳約數
假設我們有一個數字n。我們必須根據以下條件找到n的最佳約數:我們有兩個數字p和q,其中數字和較大的一個稱為比另一個更好的。當數字和相同時,較小的數字更好。
因此,如果輸入類似於n = 180,則輸出將為9,因為約數為[1, 2, 3, 4, 5, 6, 9, 10, 12, 15, 18, 20, 30, 36, 45, 60, 90, 180]。因此,數字和最大的數字為[9, 18, 36, 45, 90, 180],但其中9是更好的數字,因為它的值較小。
為了解決這個問題,我們將遵循以下步驟:
- div := 1, md := 1
- 對於i從2到n,執行以下操作
- k := i
- 如果n mod i > 0,則
- 轉到下一個迭代
- s := 0
- 當k > 0時,執行以下操作
- s := s + k mod 10
- k := k / 10
- 如果s > md,則
- md := s
- div := i
- 返回div
示例
讓我們看看以下實現以更好地理解
def solve(n): div = 1 md = 1 for i in range(2, n + 1): k = i if n % i > 0: continue s = 0 while k > 0: s += k % 10 k /= 10 if s > md: md = s div = i return div n = 180 print(solve(n))
輸入
180
輸出
9
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP