만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

특별한 수

시간 제한1.5초메모리 제한2048 MB

요약
L 이상 R 이하의 자연수 중 각 자릿수의 곱이 k로 나누어떨어지는 수의 개수를 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 정수론, 수학
정답자
아직 제출이 없습니다

문제

수론을 연구하는 J 박사는 수의 아름다움에 끌린다. nn자리 자연수 a=a_1a_2⋯a_na = a\_1a\_2 \cdots a\_n과 자연수 kk가 주어졌을 때, aa의 모든 자릿수의 곱 a_1⋅a_2⋅a_3⋯a_na\_1 \cdot a\_2 \cdot a\_3 \cdots a\_n이 kk로 나누어떨어지면 aa를 kk-특별수라고 한다. 0은 어떤 자연수로도 나누어떨어진다는 점에 유의한다.

예를 들어 a=2349a = 2349, k=12k = 12이면 자릿수의 곱 2⋅3⋅4⋅9=2162 \cdot 3 \cdot 4 \cdot 9 = 216이 12로 나누어떨어지므로 2349는 12-특별수이다. k=16k = 16이면 216이 16으로 나누어떨어지지 않으므로 2349는 16-특별수가 아니다.

입력

한 줄에 세 정수 kk, LL, RR이 주어진다 (1≤k≤10171 \le k \le 10^{17}, 1≤L≤R≤10201 \le L \le R \le 10^{20}).

출력

[L,R][L, R] 범위(양 끝 포함)에 있는 kk-특별수의 개수를 zz라고 할 때, z mod (109+7)z \bmod (10^9 + 7)을 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    5 1 20
    
    예상 출력
    4
    
  2. 예제 2

    입력
    5 50 100
    
    예상 출력
    19
    
  3. 예제 3

    입력
    15 11 19
    
    예상 출력
    0