📅  最后修改于: 2023-12-03 15:12:46.509000             🧑  作者: Mango
这是一道来自门|门 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)
本题考查了编程中循环枚举的应用,同时需要对数字的各位数字进行操作,考验了编程的基本功底。