What is the purpose of following algorithm? Is it a known algorithm? Image1
1: function Q1(X (any number from 1 to 3n), n)
2: for i ← 0 to n − 1 do
3: if X ≤ 2n then
4: for k ← 0 to n − 1 do
5: y ← y + 1
6: end for
7: else if X ≤ 3n − 1 then
8: for j ← 0 to n − 1 do
9: for m ← n downto 1 by do
10: y ← y + 1
11: end for
12: end for
13: else
14: for l ← 0 to i − 1 do
15: for p ← 0 to i − 1 do
16: y ← y + 1
17: end for
18: end for
19: end if
20: end for
21: return (y)
22: end function
I wrote a C++ code for this as follows
n=100 if X=2n-2 count=10000 if X=2n+2 count=70000 if X=3n+2 count=328350