문제1121--제곱수의 합-Easy

1121: 제곱수의 합-Easy

실행시간 제한: 1 Sec  메모리사용 제한: 128 MB
제출: 59  통과: 16
[제출] [채점기록] [묻고답하기] [만든사람:]

문제 설명

라그랑주는 1770 년에 모든 자연수는 넷 혹은 그 이하의 제곱수의 합으로 표현할 수 있다고 증명하였다. 어떤 자연수는 복수의 방법으로 표현된다. 예를 들면, 26은 52와  12의 합이다; 또한 42 + 32 + 12 으로 표현할 수도 있다. 역사적으로 암산의 명수들에게 공통적으로 주어지는 문제가 바로 자연수를 넷 혹은 그 이하의 제곱수 합으로 나타내라는 것이었다. 1900 년대 초반에 한 암산가가 15663 = 1252 + 62 + 12 + 12라는 해를 구하는데 8 초가 걸렸다는 보고가 있다. 좀 더 어려운 문제에 대해서는 56 초가 걸렸다: 11339 = 1052 + 152 + 82 + 52


자연수 n이 주어질 때, n을 구성하는 제곱수 합의 각 제곱수를 오름차순으로 표현하는 컴퓨터 프로그램을 작성하시오.

입력 설명

첫번째 줄에 테스트케이스의 수 t가 입력된다.(1<= t <= 10)
다음 줄부터 자연수 n이 t개만큼 한 줄에 하나씩 입력된다. 여기서 1 ≤ n ≤ 1,000 이다.

출력 설명

각 테스트케이스에 대하여 합이 n과 같아지는 제곱수들을 오름차순의 순으로 한 줄에 한 세트씩 출력한다.(샘플 출력 형식 참조)

입력 예시 Copy

4
25
26
123
999

출력 예시 Copy

5^2
1^2 5^2
1^2 1^2 11^2
1^2 1^2 6^2 31^2

출처/분류