Splitsen
Beschrijving
Wiskundigen zijn soms rare jongens/meiden. Dat blijkt onder andere wel
uit het feit dat ze natuurlijke getallen --- bijvoorbeeld 12 ---
willen schrijven als iets moeilijkers; laten we zeggen als som van
vier oneven kwadraten: 12 = 3² + 1² + 1² + 1².
Toevallig kan dat voor alle getallen van de vorm 4 t, waarbij
t een oneven, positief geheel getal is.
Helaas zijn wiskundigen na de introductie van de zakjapanner de kunst
van het hoofdrekenen een beetje verleerd. Het vinden van zo'n
schrijfwijze --- ook wel opsplitsing genoemd --- laten ze dan
ook liever aan de informatici (m/v) over.
Het Probleem
Aan jou dus de eer om voor al die wiskundigen een programma te
schrijven dat een willekeurig getal 4 t in vier oneven kwadraten
splitst, waarbij t een oneven, positief geheel getal is. Nu zijn er
voor elke 4 t meestal verscheidene opsplitsingen. Uiteraard zijn we
alleen geïnteresseerd in echt verschillende opsplitsingen. We
noemen twee opsplitsingen echt verschillend als de één niet in de
ander over te voeren is door de vier termen te permuteren.
De Invoer
De invoer begint met één regel met daarop het aantal getallen n
dat gesplitst moet worden. Daarna volgen n regels met daarop een
waarde voor t, waarbij 1 <= t <= 5001 en t oneven.
Voor elke waarde van t bevat de uitvoer alle echt verschillende
opsplitsingen van 4 t: per opsplitsing één regel, die er uit
ziet als 4*t=a1² + a2² + a3² +
a4², waarbij a1 <= a2 <= a3 <= a4 en ai² een oneven kwadraat is (1 <= i <= 4).
Verder dienen de opsplitsingen in lexicografische volgorde te
verschijnen. De opsplitsingen voor verschillende t's dienen
gescheiden te worden door een lege regel.
Voorbeeld
Bij de invoer
3
13
15
31
hoort de uitvoer
4*13=1+1+1+49
4*13=1+1+25+25
4*13=9+9+9+25
4*15=1+1+9+49
4*15=1+9+25+25
4*31=1+1+1+121
4*31=1+25+49+49
4*31=9+9+25+81
4*31=25+25+25+49