recur will avoid "ArithmeticException integer overflow" for biggger numbers