만드는 중입니다

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

게임

면접 대비

시간 제한1초메모리 제한1024 MB

요약
L 이상 R 이하의 각 N에 대해 f를 반복 적용하여 g(N)을 정하고, 그 합을 구합니다.
난이도

보통10점 중 4점

유형
시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

수학을 잘하는 랑이는 오늘 집사에게 수를 이용한 게임을 배웠다. 이 게임은 양의 정수 NN을 초깃값으로 시작한다. NN의 각 자릿수를 모두 더한 값을 AA, 각 자릿수를 모두 곱한 값을 BB라고 할 때, AA와 BB를 순서대로 이어 붙인 수를 f(N)f(N)으로 나타낸다. 예를 들어 N=12352N = 12352라면 각 자릿수의 합은 1+2+3+5+2=131 + 2 + 3 + 5 + 2 = 13, 각 자릿수의 곱은 1×2×3×5×2=601 \times 2 \times 3 \times 5 \times 2 = 60이므로 f(N)f(N)은 이 둘을 이어 붙인 13601360이 된다. 13601360에 같은 연산을 적용하면 1+3+6+0=101 + 3 + 6 + 0 = 10, 1×3×6×0=01 \times 3 \times 6 \times 0 = 0이므로 f(1360)=100f(1360) = 100이다. 100100에 적용하면 f(100)=10f(100) = 10이고, 1010에 적용하면 f(10)=10f(10) = 10이다. 이 게임에서는 NN이 주어졌을 때 f(N)f(N), f(f(N))f(f(N)), f(f(f(N)))f(f(f(N))), ⋯\cdots를 계속 구해 가면서 언젠가 f(x)=xf(x) = x를 만족하는 xx가 나오는지 알아내는 것이 중요하다.

NN에 연산을 계속 적용해서 x=f(x)x = f(x)가 되는 xx가 나오면 g(N)=1g(N) = 1, 나오지 않으면 g(N)=0g(N) = 0이라고 하자. 단, N,f(N),f(f(N)),⋯N, f(N), f(f(N)), \cdots 중 100 000100\,000보다 큰 수가 하나라도 있으면 계산하기 어려우므로 g(N)=−1g(N) = -1이라고 한다. 예를 들어 N=1N = 1이면 f(1)=11f(1) = 11, f(11)=21f(11) = 21, f(21)=32f(21) = 32, f(32)=56f(32) = 56, f(56)=1130f(56) = 1130, f(1130)=50f(1130) = 50, f(50)=50f(50) = 50이다. 5050에서 f(x)=xf(x) = x가 나오므로 g(1)=1g(1) = 1이다.

양의 정수 LL, RR (L≤RL \le R)이 주어질 때, g(L)+g(L+1)+⋯+g(R)g(L) + g(L + 1) + \cdots + g(R)의 값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 양의 정수 LL, RR이 공백으로 구분되어 주어진다. (1≤L≤R≤100 0001 \le L \le R \le 100\,000)

출력

g(L)+g(L+1)+⋯+g(R)g(L) + g(L + 1) + \cdots + g(R)을 출력한다.

예제1

  1. 예제 1

    입력
    1 10
    
    예상 출력
    9