luogu#P11435. [Code+#8 决赛] 报数Ⅱ
[Code+#8 决赛] 报数Ⅱ
题目背景
搬运自 Code+ #8 决赛。
题目描述
小 r 和小 z 厌倦了传统的报数游戏——几个人轮流报数,规定凡是 的倍数以及数字中含有 的数都不能报。“这也太容易了吧!谁还不会算个 的倍数啊。”
于是他们打算把游戏加强。一个比较广为人知的加强是“不能报出所有含有 的数的倍数”,不过这次他们打算玩点更有意思的。
小 z 说,可以把 改成任意正整数 ,要求报出的数 不能是 的倍数,同时不能包含 (即如果把 和 都将其不含前导 的十进制形式写成字符串,则 不能以 为子串,下文中“前缀”“后缀”的表述也是类似的含义)。
小 r 说,“不能是 的倍数”还是太弱,不妨我们改成 的每个非空前缀都不能是 的倍数吧。
小 z 紧接着说,既然都考虑前缀了,那为什么不顺便考虑后缀?
小 r 最后说,这几个条件用到的都是同一个 ,还是不够有意思,不如换成 个数 吧。
于是他们最终制定好了规则:一个数 能被报出当且仅当: 当中不包含 ,并且 的任意一个非空前缀都不是 的倍数,并且 的任意一个非空后缀都不是 的倍数。
最后,他们打算看一下这个规则到底好不好玩——于是他们叫上了全程吃瓜的你。给定正整数 ,你需要计算 范围内的正整数有多少个是按照上述规则能被报出来的。
输入格式
输入共一行, 个正整数 。
输出格式
输出共一行,一个非负整数表示答案。
20 31 5 3 7
4
12345 999999 121 66 233
815118
提示
【样例 #1 解释】
中,不包含 、非空前缀不含 的倍数、非空后缀不含 的倍数的共有以下 个:。其他的数均不符合条件,例如 是 的非空后缀且为 的倍数。
【数据范围】
对于所有的数据,满足 $1 \leq l \leq r \leq 10^{18}, 1 \leq a \leq 10^9, 2 \leq b,c \leq 300$ 。
子任务 ( 分):。
子任务 ( 分):。
子任务 ( 分):。
子任务 ( 分):。
子任务 ( 分):。
子任务 ( 分): 与 互质。
子任务 ( 分):无特殊性质。