Once Kevin is playing a hurdle game in which he has to jump some hurdles to clear a particular level. Each level ‘i’ has ‘i’ hurdles (for example, level 6 has 6 hurdles).
You are provided with the total number of hurdles that Kevin has jumped, you have to tell how many levels he has cleared.
Note :
Kevin has played this game once. He can only reach the level ‘i’ if and only if he has already cleared the level (‘i’ - 1).
Input Format :
The first line contains a single integer ‘T’ representing the number of test cases.
The first line of each test case will contain a single integer ‘N’ which represents the total number of hurdles that Kevin has jumped.
Output Format :
For each test case, print an integer denoting the number of levels that Kevin has cleared.
Output for every test case will be printed in a separate line.
Note :
You don’t need to print anything; It has already been taken care of. Just implement the given function.
Constraints :
1 <= T <= 50
0 <= N <= 10 ^ 8
Time limit: 1 sec
2
6
11
3
4
In the first test case, Kevin has cleared level 1, level 2, and level 3.
In the second test case, Kevin has cleared level 1, level 2, level 3, and level 4.
2
1
0
1
0
In the first test case, Kevin has only cleared level 1.
In the second test case, Kevin has not cleared any of the levels.
Can you get the answer by using a loop?
The basic idea is to iterate through all the levels and keep subtracting the hurdles that Kevin has jumped. The steps are as follows:
O(sqrt(N)), where ‘N’ is the total number of hurdles that Kevin has jumped.
Since at each level, hurdles get increased by 1 as compared to their previous level and, so the overall time complexity will be O(sqrt(N)).
O(1)
Since we are not using any extra space, the overall space complexity will be O(1).