아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

게임

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

요약
구간 [L, R]의 각 N에 대해 자릿수 합과 곱을 이어 붙이는 f를 반복 적용해 고정점 도달 여부를 판정하고, 100000 초과 시 -1로 처리한 값들의 합을 구한다.
난이도

보통10점 중 4점

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

문제

수학을 잘하는 랑이는 오늘 집사에게 수를 이용한 게임을 배웠다. 이 게임은 양의 정수 NN을 초깃값으로 가진 상태로 시작한다. NN의 각 자릿수를 모두 더한 값을 AA, NN의 각 자릿수를 모두 곱한 값을 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이고, 이 결과에 다시 적용한다면 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이 된다.

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

입력

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

출력

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

예제1

  1. 예제 1

    입력
    1 10
    
    예상 출력
    9