蕊蕊识数
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

蕊蕊今年五岁了。她开始学习认识整数,因为一些数字非常大(足足有的规模!),因此蕊蕊想通过一些方法给数字“瘦身”,具体是这样操作的:每次蕊蕊将当前数字n的所有十进制位的数加起来,得到一个新的数,这样重复若干次直到这个数只有一位。这个过程中会产生若干个数,蕊蕊认为这些数都代表同一个数n。为了证明这一点,蕊蕊运用了自己刚刚学的除法的概念,她希望找到另一个整数m,使得要么这若干个数(包括n本身)都能被m整除,要么这若干个数(包括n本身)都不能被m整除。显然对于不同的n,m是不同的。并且蕊蕊希望让m尽可能的小,但是m必须大于1。你能够帮蕊蕊找到这样的数m吗?

输入描述:

第一行一个整数,表示数据的组数。
接下来一共T行,第行表示第i组数据。每一个整数
数据保证输入的字符总量小于

输出描述:

输出T行,第i行对应输入的第i组数据。每行一个正整数,表示对应的n的最小的m值(m>1)。
示例1

输入

复制
2
2
64

输出

复制
2
3

说明

64可以被2整除,64“瘦身”一次后得到的10也可以被2整除,但将64“瘦身”两次后得到1不可以被2整除。而64,10,1都不能被3整除。