폴록의 추측
시간 제한1초메모리 제한128 MB
10^6 미만의 각 정수에 대해 합이 그 수가 되는 사면체수의 최소 개수와, 홀수 사면체수만 써서 만드는 최소 개수를 각각 구한다.
문제
번째 삼각수(triangular number)는 부터 까지의 양의 정수를 모두 더한 값이다. 번째 사면체수(tetrahedral number)는 처음 개의 삼각수를 모두 더한 값이며, 과 같다. 예를 들어 5번째 사면체수는 이다.
- 처음 5개의 삼각수:
- 처음 5개의 사면체수:
1850년, 전문 수학자가 아니라 영국의 법률가이자 정치가였던 프레더릭 폴록 경(Sir Frederick Pollock)은 모든 양의 정수를 최대 다섯 개의 사면체수의 합으로 나타낼 수 있다고 추측하였다. 이때 같은 사면체수를 여러 번 사용할 수 있으며, 사용한 횟수만큼 각각 개수로 센다. 이 추측은 한 세기 반이 넘도록 아직 증명되지 않았다.
주어진 각 정수에 대해, 그 수를 사면체수들의 합으로 나타낼 때 필요한 사면체수의 최소 개수를 구하는 프로그램을 작성하라. 또한 홀수인 사면체수만 사용할 수 있을 때 필요한 최소 개수도 함께 구하라.
예를 들어 40은 사면체수 2개의 합 ()으로 나타낼 수 있지만, 40 자체는 사면체수가 아니다. 홀수 사면체수만 사용하면 40은 처럼 최소 6개가 필요하다. 따라서 입력이 40이면 프로그램은 2와 6을 출력해야 한다.
입력
입력은 여러 줄로 이루어지며, 각 줄에는 보다 작은 양의 정수가 하나씩 주어진다. 입력의 끝은 하나만 있는 줄로 표시된다.
출력
각 입력 정수마다 두 정수를 공백 하나로 구분하여 한 줄에 출력한다. 첫 번째 정수는 그 수를 사면체수들의 합으로 나타낼 때 필요한 사면체수의 최소 개수이고, 두 번째 정수는 홀수 사면체수만으로 나타낼 때 필요한 최소 개수이다. 그 외의 문자는 출력하지 않는다.