# [Brain-Flak], <s>474 470 446 438 420</s> 412 bytes *-18 bytes thanks to Nitroden!* *-8 thanks to Wheat Wizard* (((()()()()()){}){}){({}[(()())]((((())))))}{}{({}<>)<>({}<>)<>({}()()<>)<>}<>{}{}{([{}]())({()<(({}())()){(<{}>)((((()()()())())((((({}{}){})[()]){}){}()))){({}<>)<>}}{}{(<{}>)(((((()()()())({})){}())(({})({}())({}{})))){({}<>)<>}}>}{}[()]){([](<>))<>((()()()()()){}){(({}<({}())>)){({}[()])<>}{}}{}<>([{}()]{}<>)<>{({}<>)(<>)}}{}(<>)<>}<>{}{{({}((((()()()){}){}){}){}<>)<>}({}(()()()()()){}<>)<>}<>{({}<>)<>}<> [Try it online!][TIO-jjskd009] [Brain-Flak]: https://github.com/Flakheads/BrainHack [TIO-jjskd009]: https://tio.run/##XVA7DsMwCL0ODL2BZannsDwkWVpV6tAVcXaX9@zEbglSLHgfYP9sz/djO16tSYSen5ozxbywrFUIYLg5OilryssfOL6jYsQU8xocsWgIEdSWZJ5VFkcmAjw4F9Hah6DnZefUnfwpEOCOhogOM8r98rNjJ6hLqRJFDP@/OjRS18g6zhCUBLJDCqtFZagOeaihLcsV0JqDnndFdhDbq/nFlflurd3uXw "Brain-Flak (BrainHack) – Try It Online" Gosh, it's nice to finally check this off my to-do list. ### Explanation: Brain-Flak is obviously not very good at getting the modulo of numbers, so I bypassed this by pushing all the elements first. (((()()()()()){}){}) Push 20 { Loop 20 times ({} [(()())] Push a 2 to represent a Buzz ((((())))) Push 4 1s ) And decrement loop counter }{} Pop the excess 0 { Loop over the list of numbers ({}<>)<>({}<>)<> Transfer two of the elements to the other stack ({}()()<>)<> And add 2 to the last one }<>{}{} Pop the excess two elements Now `1` represents normal numbers, `2` represents `Buzz`, `3` is `Fizz` and `4` represents `FizzBuzz`. Initially I just pushed the values that repeat every 15 numbers 7 times and popped the excess 5, but this way turned out to be slightly shorter. { Loop over each element ([{}]()) Subtract one from the current element ({ Fizz and/or Buzz if num is not 1 <(({}())()) Subtract 1 and push, twice { Push Buzz if num was not 3 (<{}>)((((()()()())())((((({}{}){})[()]){}){}()))){({}<>)<>} }{} { Push Fizz if num is not 2 (<{}>)(((((()()()())({})){}())(({})({}())({}{})))){({}<>)<>} } > () }{}[()]) Push -1 if neither Fizz nor Buzz were pushed { ([](<>)) Push length of list to other stack <>((()()()()()){}) Push 10 as the mod Div/mod algorithm {(({}<({}())>)){({}[()])<>}{}}{}<>([{}()]{}<>)<> Pushes n%10 to output stack and n/10 to the list stack { If div is not 0 ({}<>) Push it to the other stack (<>) Push 0 } }{} Pop excess 0 (<>)<> Push 0 to other stack to represent a newline }<>{} Pop extra newline { Loop over values { ({}((((()()()){}){}){}){}<>)<> Add 48 to every value } ({}(()()()()()){}<>)<> Turn 0s into newlines } Until there's two 0s in a row <>{({}<>)<>}<> Reverse output </code></pre>