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
- for i in range 2 to n, do
- k := i
- 如果n mod i > 0,则
- 继续下一次迭代
- s := 0
- while k > 0, do
- s := s + k mod 10
- k := k / 10
- if s > md, then
- md := s
- div := i
- return div
例子
让我们来看一下以下实现,以更好地理解
def solve(n):
div = 1
md = 1
for i in range(2, n + 1):
k = i
如果 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