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

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

인수 솔리테어

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

요약
1에서 시작해 c를 c+a로 바꾸되 a가 c를 나누고 b=c/a일 때 b를 비용으로 지불하며, N에 도달하는 최소 총비용을 구한다.
난이도

보통10점 중 7점

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

문제

인수 솔리테어(Factor Solitaire) 게임에서는 수 11에서 시작하여, 다음 연산을 반복 적용해 주어진 목표 수 nn으로 바꾸는 것이 목표입니다.

각 단계에서 현재 수를 cc라고 하자. c=a⋅bc = a \cdot b가 되도록 양의 인수 aa와 bb를 고른다. 그런 다음 현재 수에 aa를 더하여 cc를 c+ac + a로 만든다. 이 단계의 비용은 bb점이다.

현재 수가 nn이 될 때까지 이 과정을 반복한다. 목표는 총 비용을 최소로 하여 nn에 도달하는 것이다.

예를 들어 1515에 도달하는 한 가지 방법은 다음과 같다.

  • 11에서 시작한다;
  • 11을 1+1=21 + 1 = 2로 바꾼다 — 지금까지의 비용 11;
  • 22를 2+1=32 + 1 = 3으로 바꾼다 — 지금까지의 비용 1+21 + 2;
  • 33을 3+3=63 + 3 = 6으로 바꾼다 — 지금까지의 비용 1+2+11 + 2 + 1;
  • 66을 6+6=126 + 6 = 12로 바꾼다 — 지금까지의 비용 1+2+1+11 + 2 + 1 + 1;
  • 1212를 12+3=1512 + 3 = 15로 바꾼다 — 완료, 총 비용 1+2+1+1+4=91 + 2 + 1 + 1 + 4 = 9.

실제로 1515에 도달하는 최소 총 비용은 99이다. 목표 수가 주어질 때, 이 최소 총 비용을 구하여라.

입력

입력은 정수 NN 하나로 이루어진다 (1≤N≤50000001 \le N \le 5000000). 전체 케이스 중 적어도 절반은 N≤50000N \le 50000이고, 적어도 또 다른 4분의 1은 N≤500000N \le 500000이며, 나머지는 N≤5000000N \le 5000000이다.

출력

11에서 시작하여 NN에 도달하는 최소 총 비용을 정수 하나로 출력한다.

예제5

  1. 예제 1

    입력
    15
    
    예상 출력
    9
    
  2. 예제 2

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

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

    입력
    12
    
    예상 출력
    5
    
  5. 예제 5

    입력
    8
    
    예상 출력
    3