Tasks: 1. Write an iterative C++ function that inputs a nonnegative 2. Write a recursive C++ function that inputs a nonnegative 3. Compare the number of operations and time taken to integer n and returns the nth Fibonacci number. integer n and returns the nth Fibonacci number. compute Fibonacci numbers recursively versus that needed to compute them iteratively. 4. Use the above functions to write a C++ program for solving each of the following computational problems. I. Find the exact value of fioo, f00, and fio00, where f is the nth Fibonacci number. What are times taken to find out the exact values? II. Find the smallest Fibonacci number greater than 1,000,000 and greater than 1,000,000,000. III. Find as many prime Fibonacci numbers as you can. It is unknown whether there are infinitely many of these. Find out the times taken to find first 10, 20, 30, 40. up to 200 and draw a graph and see the pattern. Report: Your report should address all of the below mentioned questions 1. Describe the Fibonacci series and write briefly what you 2. What are the different skills, programming techniques have 3. What did you observe when you did the comparisons in have done in the assignment. you used in order to run the experiments? Task 3 and Task 4? Explain the graph that you have drawn from Task 4.III? 4. List at least three different applications of the Fibonacci numbers to sciences and describe one of them in details. Think of situation or a real world problem where you can apply concept of Fibonacci numbers to solve it. Explain? 5. Write a paragraph, explaining what you have done in this assignment. What were the challenges you have faced when solving these problems. How can you improve the programs you have written to solve these problems? How can you use what you have learned going forward