📜  门|门 IT 2006 |第 76 题(1)

📅  最后修改于: 2023-12-03 15:12:46.509000             🧑  作者: Mango

门|门 IT 2006 |第 76 题

这是一道来自门|门 IT 2006的编程题,题目编号为第76题。本题需要求解一个数学问题,需要用编程语言完成。

题目描述

对于一个正整数n,定义f(n)为n的各位数字的和加上n的各位数字的积。例如f(123)=6+6=12,f(20)=2+0=2。现在给定一个正整数k,求出满足f(n)=k的最小正整数n。

输入格式

输入包含一行一个正整数k(1≤k≤162)。

输出格式

输出包含一行一个整数表示满足条件的最小正整数n。

样例输入
12
样例输出
78
解题思路

本题需要求出满足特定条件的最小正整数,可以通过循环枚举的方式逐一判断每个正整数是否满足条件。对于每个正整数n,可以通过求各位数字之和及积的方式计算出f(n),并与给定的k进行比较。

参考代码
def sum_product(n):
    s, p = 0, 1
    while n > 0:
        s += n % 10
        p *= n % 10
        n //= 10
    return s + p

k = int(input())
n = 1
while sum_product(n) != k:
    n += 1
print(n)
总结

本题考查了编程中循环枚举的应用,同时需要对数字的各位数字进行操作,考验了编程的基本功底。