#3163. 自除数计数(divisior)

自除数计数(divisior)

题目描述

朋朋最近了解了“自除数”的概念:如果一个数不含数字 0,且能被它包含的每一位数字整除,那么这个数就是一个自除数。 例如,128 是自除数,因为 128 不含 0 且 128÷1=128128 \div 1 = 128128÷2=64128 \div 2 = 64128÷8=16128 \div 8 = 16,所有除法均能除尽。

现在朋朋想计算一个给定区间 [left,right][\text{left}, \text{right}] 内有多少个自除数。由于区间范围可能很大,逐个判断每个数字会非常耗时。请你编写一个程序,高效地帮助朋朋计算出区间内自除数的个数。

输入格式

从文件 divisior.in 中读入数据。 一行两个正整数 left,right\text{left}, \text{right},表示区间 [left,right][\text{left}, \text{right}] 的左右端点。

输出格式

输出到文件 divisior.out。 输出一行一个正整数,表示区间内的自除数个数。

样例输入输出

样例

1 22
13
15 50
7

样例解释

  • 样例1解释:在区间 [1,22][1, 22] 内的自除数有:1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22,共计13个,故输出13。
  • 样例2解释:在区间 [15,50][15, 50] 内的自除数有:15, 22, 24, 33, 36, 44, 48,共计7个,故输出7。

数据范围与提示

对于100%的数据,1lr1041≤l≤r≤10^4