#E. 自除数计数(divisior)

    Type: FileIO (divisior) 1000ms 256MiB

自除数计数(divisior)

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.

题目描述

朋朋最近了解了“自除数”的概念:如果一个数不含数字 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

C++阶段测试20260426

Not Attended
Status
Done
Rule
IOI
Problem
5
Start at
2026-4-26 10:45
End at
2026-4-26 12:03
Duration
1.3 hour(s)
Host
Partic.
10