Bash Chocolates By Numbers
gcd() {
local _n=$1 _m=$2
if (( _n % _m == 0 )); then
echo "$_m"
return
fi
gcd "$_m" $(( _n % _m ))
}
chocolates_by_numbers() {
local _n=$1 _m=$2
local _g
_g=$(gcd "$_n" "$_m")
echo $(( (_n * _m / _g) / _m ))
}
This uses the greatest common divisor to figure out how many chocolates get eaten before the pattern repeats.