题目描述
报数游戏中,参与者按顺序轮流报出正整数。若一个数是 $7$ 的倍数,或十进制表示中含有数字 $7$,这个数就不能被报出。
现在规则进一步加强:如果某个正整数的十进制表示中含有数字 $7$,那么它的所有正整数倍也都不能被报出。
形式化地,设 $p(x)$ 表示 $x$ 的十进制表示中是否含有数字 $7$。若含有,则 $p(x)=1$;否则 $p(x)=0$。一个正整数 $x$ 不能被报出,当且仅当存在正整数 $y,z$,满足 $x=yz$ 且 $p(y)=1$。
例如,若当前报出的数是 $6$,由于 $7$ 不能报出,下一次应报 $8$;若当前报出的数是 $33$,由于 $34=17\times 2$、$35=7\times 5$ 都不能报出,下一次应报 $36$;若当前报出的数是 $69$,由于 $70\sim79$ 都含有数字 $7$,下一次应报 $80$。
给定多次询问。对于每个正整数 $x$,如果 $x$ 本身不能被报出,输出 $-1$;否则输出大于 $x$ 的最小的、可以被报出的正整数。