자릿수 거듭제곱 수열

면접 대비

시간 제한2초메모리 제한128 MB

요약
A부터 B까지 각 N에 대해 자릿수의 K제곱 합을 반복 적용해 사이클을 찾고, 각 수열에서 나온 최솟값들의 합을 구하는 문제입니다.
난이도

보통10점 중 4점

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

문제

자연수 N에 대해 S_K(N)을 N의 각 십진수 자리수를 K제곱한 값들의 합이라고 하자. 예를 들어 S_2(65) = 6^2 + 5^2 = 61이다.

이제 수열 N, S_K(N), S_K(S_K(N)), ...을 만든다. 세 정수 A, B, K가 주어졌을 때, A <= N <= B인 모든 자연수 N에 대해 이 수열을 만들고, 각 수열에 등장하는 가장 작은 값을 구한다. 그 값들의 합을 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 세 정수 A, B, K가 주어진다.

출력

첫째 줄에 정답을 출력한다.

제한

  • 1 <= A <= B <= 1,000,000
  • 1 <= K <= 6

예제5

  1. 예제 1

    입력
    1 5 2
    
    예상 출력
    14
    
  2. 예제 2

    입력
    13 13 2
    
    예상 출력
    1
    
  3. 예제 3

    입력
    10 99 1
    
    예상 출력
    450
    
  4. 예제 4

    입력
    535 538 3
    
    예상 출력
    820
    
  5. 예제 5

    입력
    100000 400000 6
    
    예상 출력
    5169721292