Python 程序用于查找数字的更好除数
pythonserver side programmingprogramming
假设我们有一个数字 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
- 对于 2 到 n 范围内的 i,执行
- k := i
- 如果 n mod i > 0,则
- 进行下一次迭代
- s := 0
- 当 k > 0,执行
- s := s + k mod 10
- k := k / 10
- 如果 s > md,则
- md := s
- div := i
- return 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