Cerința
Să se scrie un număr natural n
ca sumă de pătrate perfecte. De asemenea, numărul termenilor trebuie să fie minim.
Date de intrare
Fișierul de intrare spatrat.in
conține un număr natural n
, numărul care se cere să fie scris ca suma de patrate perfecte.
Date de ieșire
Fișierul de ieșire spatrat.out
va conține pe prima linie un număr k
, reprezentând numărul termenilor din adunare. Pe a doua linie se vor scrie cele k
numere care ridicate la pătrat și adunate dau n
, separate printr-un spațiu.
Restricții și precizări
1 ≤ n ≤ 100.000
- pentru
40%
dintre teste,n ≤ 1000
- punctajul pe un test complet se acordă astfel:
max(5 - (k_program - k_corect), 0)
(undek_corect
este răspunsul corect, iark_program
răspunsul dat de sursa trimisă) - pentru afișarea doar a valorii lui
k
se va acorda doar50%
din punctajul calculat după formula de mai sus pentru fiecare test - lăcomia nu se răsplătește cu punctajul maxim!
Exemplu:
spatrat.in
18
spatrat.out
2 3 3
Explicație
3
2
+ 3
2
= 9 + 9 = 18
18
nu este pătrat perfect, deci nu se poate scrie ca sumă formată din el însuși (ca să existe soluție pentru k = 1
)