만드는 중입니다

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

수 만들기

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

요약
1에서 시작해 1더하기, 1빼기, 거듭제곱 연산만으로 최대 10^18인 N을 만드는 최소 연산 횟수를 구하는 문제입니다.
난이도

어려움10점 중 8점

유형
정수론, 수학, 재귀, 백트래킹
정답자
아직 제출이 없습니다

문제

처음 수는 1이다. 세 가지 연산을 원하는 순서로 사용해서 수 N을 만들려고 한다. 가능한 연산은 다음과 같다.

  1. 현재 수에 1을 더한다.
  2. 현재 수가 1보다 크면 현재 수에서 1을 뺀다.
  3. 자연수 x를 하나 골라 현재 수를 현재 수^x로 바꾼다.

N을 만들기 위해 필요한 연산 횟수의 최솟값을 구하라.

입력

첫째 줄에 자연수 N이 주어진다. N은 10^18 이하이다.

출력

첫째 줄에 필요한 최소 연산 횟수를 출력한다.

예제4

  1. 예제 1

    입력
    80
    
    예상 출력
    4
    
  2. 예제 2

    입력
    8
    
    예상 출력
    2
    
  3. 예제 3

    입력
    1
    
    예상 출력
    0
    
  4. 예제 4

    입력
    123456789
    
    예상 출력
    2566