[NOIP2021] 报数
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
题目描述
报数游戏是一个广为流传的休闲小游戏。参加游戏的每个人要按一定顺序轮流报数,但如果下一个报的数是 的倍数,或十进制表示中含有数字 ,就必须跳过这个数,否则就输掉了游戏。
在一个风和日丽的下午,刚刚结束 SPC20nn 比赛的小 r 和小 z 闲得无聊玩起了这个报数游戏。但在只有两个人玩的情况下计算起来还是比较容易的,因此他们玩了很久也没分出胜负。此时小 z 灵光一闪,决定把这个游戏加强:任何一个十进制中含有数字 的数,它的所有倍数都不能报出来!
形式化地,设 表示 的十进制表示中是否含有数字 ,若含有则 ,否则 。则一个正整数 不能被报出,当且仅当存在正整数 和 ,使得 且 。
例如,如果小 r 报出了 ,由于 不能报,所以小 z 下一个需要报 ;如果小 r 报出了 ,则由于 , 都不能报,小 z 下一个需要报出 ;如果小 r 报出了 ,由于 的数都含有 ,小 z 下一个需要报出 才行。
现在小 r 的上一个数报出了 ,小 z 想快速算出他下一个数要报多少,不过他很快就发现这个游戏可比原版的游戏难算多了,于是他需要你的帮助。当然,如果小 r 报出的 x 本身是不能报出的,你也要快速反应过来小 r 输了才行。
由于小 r 和小 z 玩了很长时间游戏,你也需要回答小 z 的很多个问题。
输入格式
第一行,一个正整数 表示小 z 询问的数量。
接下来 行,每行一个正整数 ,表示这一次小 r 报出的数。
输出格式
输出共 行,每行一个整数,如果小 r 这一次报出的数是不能报出的,输出 ,否则输出小 z 下一次报出的数是多少。
4
6
33
69
300
8
36
80
-1
5
90
99
106
114
169
92
100
109
-1
180
见附件中的 number/number3.in
见附件中的 number/number3.ans
见附件中的 number/number4.in
见附件中的 number/number4.ans
提示
【样例解释 #1】
这一组样例的前 次询问在题目描述中已有解释。
对于第 次询问,由于 ,而 中含有 ,所以小 r 直接输掉了游戏。
【数据范围】
对于 的数据,,。
对于 的数据,,。
对于 的数据,,。
对于 的数据,,。
对于 的数据,,。
一起比赛欢乐多
- Status
- Done
- Rule
- Ledo
- Problem
- 22
- Start at
- 2024-7-29 19:00
- End at
- 2024-7-29 21:00
- Duration
- 2 hour(s)
- Host
- Partic.
- 0