1. (5) Write a function that calculates the gcd of two integers. Make the function recursive. Do not use loops. Write a main function that utilizes the gcd function to calculate the gcd of inputted integers. 2. (5+5+5+5) Write a "vector library." This library should allow some operations on vectors. Vectors are ordered sets of real numbers (i.e. arrays of doubles). Make sure to test your operations by writing a main function that uses them. Your library should provide the following operations (functions): component-wise addition: <2.5, 3.2, 5.6> + <2.4, 2.3, 2.1> = <4.9, 5.5, 7.7> void addVec(double dst[], double u[], double v[], int size); component-wise subtraction void subVec(double dst[], double u[], double v[], int size); component-wise multiplication void mulVec(double dst[], double u[], double v[], int size); dot-product: <1.0, 2.0, 3.0> + <4.0, 5.0, 6.0> = 1.0*4.0 + 2.0*5.0 + 3.0*6.0 = 32.0 double dotproduct(double u[], double v[], int size); 3. (5+5) Write a function called strcpy that takes in two strings and copies the contents of the first string to the second string. Write another function called strcat, which concatenates string s1 to string s2, placing the full string in dst. void strcpy(char src[], char dst[]); void strcat(char dst[], char s1[], char s2[]);