Finally, a famous guy wrote a long email and said I am sorry, I didn't have time to write a shorter email, hence I am writing a longer one. Well, writing efficient code is hard. Never judge a programmer by the number of lines of code s/he writes. On an unrelated topic, what is factorial of zero? Is it one? Factorial of zero is one. That's very strange. One more mystery for you to solve. I have full faith in you to solve all of this mess.