Write a program in C++ for a server (called math solver) which solves three math problems: factorial (i.e. n!), exponent with base 2 (i.e. 2n), and cube (i.e. n3). The server should be implemented as a process and the three problems are implemented in three threads. The server process is responsible for posting a menu of choices for the user to select. Once a choice is made, the server asks the user for a nonnegative integer (including 0). The server then creates the corresponding thread and passes the integer to it to solve the problem. The program continues until the user stops it.