Since **what ()** is being called recursively, therefore the final call for **what ()** occurs when **n = 1**, after which **A ()** is called which takes **O(1)** amount of time. As the final **what ()** ends, **(B (n - (n - 2))** gets called, which is **B (2) **and takes **O(1/2)** amount of time. After the end of **B (2)**, **what (2) **ends and the process repeats until **B (1/n)** is the final function that is called. Therefore, the time complexity is -

**T(n) = O(1) + O(1/2) + O(1/3) ... + O(1/n)**

But here's the thing.** O(1) **represents constant time required to perform a task. This is the smallest amount of time required to perform a certain task by the computer. The time required to perform a task can not get smaller than this. Hence, **O(1/2)**, **O(1/3)**, etc. would be practically impossible on any conventional computer. Therefore these operations would rather take **O(1)** amount of time each. Thus, the total time complexity of the function becomes -

**T(n) = O(1) + O(1) + O(1) + ... **up to **n**

which is,

**T(n) = n * O(1) = O(n)**

Hence, the answer is **O(n)**.