#P11920. [PA 2025] 乘数 / Mnożenie cyfr

[PA 2025] 乘数 / Mnożenie cyfr

背景

PA 2025 R3B.

题目描述

对于非负整数 nn,定义函数 f(n)f(n):

  • 令 nn 的十进制表示为 a1a2…ak‾\overline{a_1a_2\ldots a_k}。
  • 则 f(n)=a1a2⋯akf(n)=a_1a_2\cdots a_k。

换言之,f(n)f(n) 就是将 nn 十进制表示下的数位相乘得到的结果。

对于非负整数 xx,按如下程序执行操作:

  1. 若 x≤9x\le 9,终止操作;
  2. 否则令 x←f(x)x\gets f(x),回到 1。

举例

  1. 57→5×7=35→3×5=15→1×5=557\to 5\times 7=35\to 3\times 5=15\to 1\times 5=5。
  2. 255→2×5×5=50→5×0=0255\to 2\times 5\times 5=50\to 5\times 0=0。

可以证明,对于任意非负整数 xx,这个操作都一定会终止。

TT 组数据,每组数据给定 nn,对于 i=0,1,…,9i=0,1,\ldots,9,求出:

  • 有多少个 1≤j≤n1\le j\le n 满足将 jj 操作后最终会得到 ii。

输入格式

本题单个测试点内含有多组测试数据。

第一行,一个正整数 TT。

第二行,TT 个正整数 nn,描述 TT 组数据。

输出格式

输出 TT 行,每行 1010 个非负整数,每行第 ii 个整数表示:

  • 有多少个 1≤j≤n1\le j\le n 满足将 jj 操作后最终会得到 i−1i-1。
5
10 56 57 123 1
1 1 1 1 1 1 1 1 1 1
11 2 7 3 6 5 8 2 9 3
11 2 7 3 6 6 8 2 9 3
36 3 11 4 12 8 16 4 24 5
0 1 0 0 0 0 0 0 0 0

提示

  • 1≤T≤1031\le T\le 10^3;
  • 1≤n≤10181\le n\le 10^{18}。