Not to discourage further answers but this has been asked and answered in the past.
Here's a great answer by /u/Georgy_K_Zhukov