#!/bin/bash
diophantine()
{
local i
local n=$1
[[ ${n} -eq 0 ]] && echo "${ilist[@]}" ||
{
for ((i = n; i > 0; i--))
do
ilist[${#ilist[@]}]=${i}
diophantine $((n-i))
done
}
unset ilist[${#ilist[@]}-1]
}
read input
RE_POSITIVE_INTEGER="^[1-9]+$"
[[ ! ${input} =~ ${RE_POSITIVE_INTEGER} ]] && echo "usage: $(basename $0) <Z+>" ||
{
declare -a ilist=
diophantine ${input}
}
exit
IyEvYmluL2Jhc2gKIApkaW9waGFudGluZSgpCnsKICAgIGxvY2FsIGkKICAgIGxvY2FsIG49JDEKICAgIFtbICR7bn0gLWVxIDAgXV0gJiYgZWNobyAiJHtpbGlzdFtAXX0iIHx8CiAgICB7CiAgICAgICAgZm9yICgoaSA9IG47IGkgPiAwOyBpLS0pKQogICAgICAgIGRvCiAgICAgICAgICAgIGlsaXN0WyR7I2lsaXN0W0BdfV09JHtpfQogICAgICAgICAgICBkaW9waGFudGluZSAkKChuLWkpKQogICAgICAgIGRvbmUgICAgICAgICAgICAgICAKICAgIH0gICAgCiAgICB1bnNldCBpbGlzdFskeyNpbGlzdFtAXX0tMV0KfQogCnJlYWQgaW5wdXQKIApSRV9QT1NJVElWRV9JTlRFR0VSPSJeWzEtOV0rJCIKW1sgISAke2lucHV0fSA9fiAke1JFX1BPU0lUSVZFX0lOVEVHRVJ9IF1dICYmIGVjaG8gInVzYWdlOiAkKGJhc2VuYW1lICQwKSA8Wis+IiB8fAp7CiAgICBkZWNsYXJlIC1hIGlsaXN0PQogICAgZGlvcGhhbnRpbmUgJHtpbnB1dH0KfQpleGl0IA==