시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 128 MB73312844.444%

문제

우리는 양의 정수들이 나열된 다음과 같은 끔찍한 수열 <a1, a2, ..., an>을 구하는 두 개의 문제를 풀려고 한다. 수열 <a1, a2, ..., an>의 길이는 수열에 포함된 정수의 수이다.

  • 문제 A: 양의 정수 M이 주어질 때,  정수들의 합 a1 + a2 + ... + an = M을 만족시키면서, 정수들의 곱 a1 × a2 × ... × an의 값이 가장 크게 되는 끔찍한 수열 <a1, a2, ..., an>을 구하시오. 단, 곱 a1 × a2 × ... × an의 값이 가장 크게 되는 서로 다른 길이의 수열이 두 개 이상 존재할 경우, 수열의 길이 n이 최대인 것과 최소인 것을 모두 구한다.
  • 문제 B: 양의 정수 M이 주어질 때, 정수들의 곱 a1 × a2 × ... × am = M을 만족시키면서, 정수들의 합 a1 + a2 + ... + am의 값이 가장 작게 되는 끔찍한 수열  <a1, a2, ..., am>을 구하시오. 단, 합 a1 + a2 + ... + am의 값이 가장 작게 되는 서로 다른 길이의 수열이 두 개 이상 존재할 경우, 수열의 길이 m이 최대인 것과 최소인 것을 모두 구한다.

문제 A에서 구한 수열의 최대/최소 길이 n과 문제 B에서 구한 수열의 최대/최소 길이 m을 출력하는 프로그램을 작성하시오.

예를 들어 M = 6이면, 문제 A에서 구한 수열은 <3, 3> 뿐이므로 이 수열의 최대/최소 길이는 2이고, 문제 B에서 구한 수열은 <2, 3>뿐이므로 이 수열의 최대/최소 길이는 2이다.

입력

첫째 줄에 정수 이 주어진다. (1 ≤ M ≤ 1,000,000)

출력

첫째 줄에 문제 A에서 구한 수열의 최대/최소 길이 n과 문제 B에서 구한 수열의 최대/최소 길이 m을 나타내는 네 개의 정수를 빈칸을 사이에 두고 차례대로 출력한다.

예제 입력 1

6

예제 출력 1

2 2 2 2

출처

  • 문제를 번역한 사람: author5