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

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

제곱수

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

요약
모든 소인수가 100000 이하인 10^18 이하의 자연수 N이 주어질 때, 제곱의 합이 N이 되는 음이 아닌 정수 네 개를 출력한다.
난이도

어려움10점 중 8점

유형
정수론, 수학, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

재홍이는 자연수를 100,000 이하의 수밖에 알지 못한다. 하지만 친절한 종혁이가 재홍이에게 곱셈을 가르쳐 주었고, 이제 재홍이는 100,000 이하의 수들을 곱해서 만들 수 있는 자연수까지 알 수 있게 되었다.

어느 날 문득, 재홍이는 자신이 알고 있는 자연수를 최소 개수의 제곱수의 합으로 나타내 보고 싶다는 생각이 들었다. 그래서 자신이 원래 알고 있던 100,000 이하의 자연수들을 가지고 만들어 보았더니, 많아야 4개의 제곱수를 사용하면 모든 자연수를 제곱수의 합으로 나타낼 수 있다는 것을 알았다.

이제 재홍이는 종혁이에게 배워서 새로 알게 된 큰 수들도 네 개의 제곱수의 합으로 표현될 수 있는지를 알고 싶어졌다. 물론 네 개 이하의 제곱수로도 만들 수 있는 경우도 있겠지만, 편의를 위해 0 또한 제곱수로 보고 정확히 네 개의 제곱수의 합으로 나타내 보도록 하려고 한다.

재홍이가 알고 있는 자연수가 주어졌을 때, 이를 네 개의 제곱수의 합으로 표현하는 프로그램을 작성하시오. 반드시 최소 개수로 표현할 필요는 없다.

입력

첫째 줄에 NN (1≤N≤10181 \le N \le 10^{18})이 주어진다. 주어지는 NN은 소인수가 모두 100,000 이하인 수이다.

출력

첫째 줄에 네 개의 음 아닌 정수 형태로 출력한다. 이 네 수를 제곱해서 더하면 반드시 NN이 되어야 한다.

예제1

  1. 예제 1

    입력
    86
    
    예상 출력
    3 4 5 6