Zahlen als Summe von Quadratzahlen

Link zu Maxima Online: http://maxima-online.org/?inc=r-1210189933

(%i1) "*"/* Quelle der Aufgabstellung: http://www.zum.de/Faecher/
Materialien/dorner/manuskripthtml/quadratsummen/qzsummen.html */;
(%o1)                                  *
(%i2) "*"/* Die natürlichen Zahlen von 1 bis zu einer bestimmten
Obergrenze sind als Summe von Quadratzahlen darzustellen */;
(%o2)                                  *
(%i3) "*"/* Eingabe der Obergrenze */;
(%o3)                                  *
(%i4) og:10/* diese Obergrenze darf verändert werden */;
(%o4)                                 10
(%i5) "*"/* Verarbeitung */;
(%o5)                                  *
(%i6) liste:[];
(%o6)                                 []
(%i7) for z:1 thru og do block(for x1:0 thru floor(sqrt(z)) do
for x2:0 thru floor(sqrt(z)) do for x3:0 thru floor(sqrt(z)) do
for x4:0 thru floor(sqrt(z)) do if x1^2+x2^2+x3^2+x4^2=z then
liste:append(liste,[[z,sort([x1,x2,x3,x4])]]));
(%o7)                                done
(%i8) "*"/* Ausgabe */;
(%o8)                                  *
(%i9) transpose(listify(setify(liste)));
                            [ [1, [0, 0, 0, 1]]  ]
                            [                    ]
                            [ [2, [0, 0, 1, 1]]  ]
                            [                    ]
                            [ [3, [0, 1, 1, 1]]  ]
                            [                    ]
                            [ [4, [0, 0, 0, 2]]  ]
                            [                    ]
                            [ [4, [1, 1, 1, 1]]  ]
                            [                    ]
                            [ [5, [0, 0, 1, 2]]  ]
                            [                    ]
(%o9)                       [ [6, [0, 1, 1, 2]]  ]
                            [                    ]
                            [ [7, [1, 1, 1, 2]]  ]
                            [                    ]
                            [ [8, [0, 0, 2, 2]]  ]
                            [                    ]
                            [ [9, [0, 0, 0, 3]]  ]
                            [                    ]
                            [ [9, [0, 1, 2, 2]]  ]
                            [                    ]
                            [ [10, [0, 0, 1, 3]] ]
                            [                    ]
                            [ [10, [1, 1, 2, 2]] ]
(%i10)