In this case the recursive version is more intuitive and concise. In c the main program can have many functions. The primary difference between recursion and iteration is that is a recursion is a process always applied to a function.