G:= proc(s, m) option remember; local t; if s = 9 then t:= m else t:= 0 fi; if s >= 8 then t:= t + expand(m!/(2*(s-8)!*(m-(s-8)-2)!)) fi; if s >= 4 then t:= t + expand(m!/(s-4)!/(m-(s-4)-1)!) fi; t + expand(m!/(s!*(m-s)!)); end proc: t:= 0: for a[1, 1] in [0, 1, 4, 9] do for a[1, 2] in [0, 1, 4, 9] do for a[1, 3] from 0 to 9 - a[1, 1] - a[1, 2] do for a[2, 1] in [0, 1, 4, 9] do for a[2, 2] in [0, 1, 4, 9] do for a[2, 3] from 0 to 9 - add(add(a[i, j], i=1..2), j=1..2) - a[1, 3] do for a[3, 1] from 0 to 9 - add(add(a[i, j], i=1..2), j=1..3) do for a[3, 2] from 0 to 9 - add(add(a[i, j], i=1..2), j=1..3) - a[3, 1] do a[3, 3]:= 9 - add(add(a[i, j], i=1..2), j=1..3) - a[3, 1] - a[3, 2]; for a[1, 4] in [0, 1, 4, 9] while add(add(a[i, j], i=1..3), j=2..3) + a[1, 4] <= 9 do for a[2, 4] in [0, 1, 4, 9] while add(add(a[i, j], i=1..3), j=2..3) + a[1, 4] + a[2, 4] <= 9 do a[3, 4]:= 9 - add(add(a[i, j], i=1..3), j=2..3) - a[1, 4] - a[2, 4]; for a[1, 5] in [0, 1, 4, 9] while add(add(a[i, j], i=1..3), j=3..4) + a[1, 5] <= 9 do for a[2, 5] in [0, 1, 4, 9] while add(add(a[i, j], i=1..3), j=3..4) + a[1, 5]+a[2, 5] <= 9 do a[3, 5]:= 9 - add(add(a[i, j], i=1..3), j=3..4) - a[1, 5] - a[2, 5]; for a[4, 1] in [0, 1, 4, 9] while add(add(a[i, j], i=2..3), j=1..3) + a[4, 1] <= 9 do for a[4, 2] in [0, 1, 4, 9] while add(add(a[i, j], i=2..3), j=1..3) + a[4, 1] + a[4, 2] <= 9 do a[4, 3]:= 9 - add(add(a[i, j], i=2..3), j=1..3) - a[4, 1] - a[4, 2]; a[4, 4]:= 9 - add(add(a[i, j], i=2..3), j=2..4) - a[4, 2] - a[4, 3]; if not member(a[4, 4], [0, 1, 4, 9]) then next fi; a[4, 5]:= 9 - add(add(a[i, j], i=2..3), j=3..5) - a[4, 3] - a[4, 4]; if not member(a[4, 5], [0, 1, 4, 9]) then next fi; for a[5, 1] in [0, 1, 4, 9] while add(add(a[i, j], i=3..4), j=1..3) <= 9 do for a[5, 2] in [0, 1, 4, 9] while add(add(a[i, j], i=3..4), j=1..3) + a[5, 1] + a[5, 2] <= 9 do a[5, 3]:= 9 - add(add(a[i, j], i=3..4), j=1..3) - a[5, 1] - a[5, 2]; a[5, 4]:= 9 - add(add(a[i, j], i=3..4), j=2..4) - a[5, 2] - a[5, 3]; if not member(a[5, 4], [0, 1, 4, 9]) then next fi; a[5, 5]:= 9 - add(add(a[i, j], i=3..4), j=3..5) - a[5, 3] - a[5, 4]; if not member(a[5, 5], [0, 1, 4, 9]) then next fi; t:= t + G(a[1, 3], n-4) * G(a[2, 3], n-4) * G(a[3, 1], n-4) * G(a[3, 2], n-4) * G(a[3, 3], (n-4)^2) * G(a[3, 4], n-4) * G(a[3, 5], n-4) * G(a[4, 3], n-4) * G(a[5, 3], n-4); od od od od od od od od od od od od od od od od: Q:= sort(normal(t)); seq(Q, n=4..30);