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