P2821 变幻数
题意
给定一个数 ,若 ,则 ,否则找到一个最小整数 满足 的各位之乘积 。若无解输出 There is no such number!
。
解法
显然可以贪心,因为 是各位乘积,所以其每个因数显然 ,因为要 最小,则每个因数尽量大,从 枚举到 即可。
虽然我平时用 C++,但是这个题需要高精 (现在这年头谁还会高精),所以我用 Python 过了。
代码:
a = int(input())
if a < 10:
print(a)
else:
p = []
for i in range(1, 9):
x = 10 - i
while a % x == 0:
p.append(x)
a = a // x
if a != 1:
print("There is no such number!")
else:
p.reverse()
for i in p:
print(i, end = "")