First write a program to compute factorial based on a number given on the command line. This program should be simple. For example, to compute 5!, you would simply type "./factorial 5" on the command line, assuming that you named your executable factorial. The output of this program should be "5! is 120." Secondly, write a program that gets input from the user. For example, ask the user what factorial they would like to compute. Given this input (you may read it in as a cstring for simplicity), create a child process to compute the factorial. Be sure that the parent waits for the child to finish executing before it exits. You will need to use fork, execlp and wait system calls for this assignment. Read: 111-123 Be sure to think about the practice exercises. Also answer the following from the book: 3.7, 3.9 Lastly answer: What is swapping and why is it useful?