#P04027. 最小原始生成元

最小原始生成元

题目背景

如果正整数 xx 加上 xx 各位上数字之和得到 yy,就称 xx 是 yy 的生成元,或者说 yy 的生成元是 xx。

一个正整数的生成元可能不唯一,例如 101101 就有 100100 和 9191 两个生成元。

有些正整数没有生成元,例如 1,3,5,7,9,20,31,42,53,64,75,86,97,...1,3,5,7,9,20,31,42,53,64,75,86,97,... 这些正整数都没有生成元。

对于正整数 k0k_0,如果计算得到其生成元是 k1k_1,继续计算得到 k1k_1 的生成元 k2k_2,继续计算得到 k2k_2 的生成元 k3k_3,……,这样持续溯源,最后得到一个生成元 kik_i 并且 kik_i 没有生成元,到这里溯源过程结束,最后的生成元 kik_i 就是溯源得到的原始生成元。因为一个正整数的生成元可能不唯一,所以这样的溯源可能有多种方式,现在要计算所有溯源方式得到的所有原始生成元的最小值。

例如整数 101101 有以下两种溯源方式:

  1. 101←100←86101←100←86,原始生成元是 8686;
  2. 101←91←77←70←62←49←38←28←23←16←8←4←2←1101←91←77←70←62←49←38←28←23←16←8←4←2←1,原始生成元是 11。

可知整数 101101 的所有溯源方式得到的所有原始生成元的最小值是 11。

例如整数 214214 有以下六种溯源方式(书写时省略了一些中间溯源过程):

  1. $214←197←184←173←163←149←142←134←130←119←109←95←...←5$,原始生成元是 55;
  2. $214←197←184←173←163←149←142←134←130←119←109←104←...←20$,原始生成元是 2020;
  3. 214←206←193←...←143214←206←193←...←143,原始生成元是 143143;
  4. 214←206←202←191←181←167←160←152←139←128←118←113←97214←206←202←191←181←167←160←152←139←128←118←113←97,原始生成元是 9797;
  5. $214←206←202←191←181←167←160←152←139←128←118←113←106←...←31$,原始生成元是 3131;
  6. 214←206←202←200←190←176214←206←202←200←190←176,原始生成元是 176176。

可知整数 214214 的所有溯源方式得到的所有原始生成元的最小值是 55。

题目描述

给定的一系列正整数,对于每个正整数,计算其所有溯源方式得到的所有原始生成元的最小值。

输入格式

输入文件名:gen.in

第 11 行是一个正整数 NN。

第 22 行有 NN 个正整数 nin_i(1≤i≤N1\leq i \leq N),整数间用一个空格隔开。

输出格式

输出文件名:gen.out

NN 个非负整数,依次是输入的每个正整数的所有溯源方式得到的所有原始生成元的最小值。如果输入的正整数没有生成元,则无法溯源,此时直接输出 00。

输入输出样例

注意本题要重定向输入输出到指定文件

5
216 64 2005 101 214
9 0 1862 1 5

说明/提示

注意本题要重定向输入输出到指定文件

👀️ 对于100%100\% 的数据,N≤1000N\leq 1000,1≤ni≤1051 \leq n_i \leq 10^5。