import sys
data = sys.stdin.read().strip().split("\n")
t = int(data[0])
x = [int(a) for a in data[1].split(' ')]
end = max(x)
multipliers: dict = {}
def multiply(num: int) -> int:
r = 1
for a in str(num):
r *= int(a)
return r
def solve(x: list[int], end: int) -> str:
result: dict = {}
all_nums = [0] * 10
i = 1
while i <= end:
val = i
all_vals = []
while len(str(val)) > 1:
if val in multipliers.keys():
val = multipliers[val]
break
all_vals.append(val)
val = multiply(val)
for vals in all_vals:
multipliers.setdefault(vals, val)
all_nums[val] += 1
if i in x:
result.setdefault(i, all_nums.copy())
i += 1
for r in x:
print(" ".join([str(a) for a in result[r]]))
solve(x, end)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import sys data = sys.stdin.read().strip().split("\n") t = int(data[0]) x = [int(a) for a in data[1].split(' ')] end = max(x) multipliers: dict = {} def multiply(num: int) -> int: r = 1 for a in str(num): r *= int(a) return r def solve(x: list[int], end: int) -> str: result: dict = {} all_nums = [0] * 10 i = 1 while i <= end: val = i all_vals = [] while len(str(val)) > 1: if val in multipliers.keys(): val = multipliers[val] break all_vals.append(val) val = multiply(val) for vals in all_vals: multipliers.setdefault(vals, val) all_nums[val] += 1 if i in x: result.setdefault(i, all_nums.copy()) i += 1 for r in x: print(" ".join([str(a) for a in result[r]])) solve(x, end) |
English