(3)(10 points) Write a program to compute C(n, r). This function is known as the choose function, and is defined as the number of r element subsets of an n element set. So C(5, 2) = 10 because there are ten possible two element subsets from a set of 5 elements. Similarly, C(4, 1) = 4, C(4, 4) = 1, and C(4, 0) = 1. Mathematically the choose function is defined as: $C(n,r) = \frac{n!}{r! * (n - r)!}$ where n and r are non-negative integers (including zero), and "!" means factorial. So C(5, 2) = $\frac{5!}{(2! 3!)} = \frac{120}{(2*6)} = \frac{120}{12} = 10$. Recall that 0! (zero factorial) is defined to be 1 (one). You must use exactly and only the following four functions in your program whose prototypes are as shown, and each performs the following tasks only: 1. int main (void); Prompts the user to enter a pair of integers and stores them in variables n and r respectively. Calls the function check to make sure n and r are each non-negative and that n >= r, exiting the program if not Next, call the function choose that calculates and returns C(n,r) Finally, display the result 2. int check (int n, int r); Verify that both n and r are non-negative(>= 0), and that n is greater than or equal to r (i.e. n >= r). If so, return 1; if not, print an appropriate error message and return 0. 3. long int fact (int num); Compute and return num! (that is, the factorial of num). This is the same calculation that you had to perform in the previous two homework assignments. 4. long int choose (int n, int r); Compute and return C(n, r). This function should call the fact function a few times.