The wording is fine… Try identifying what you don’t understand, for example, what is a power of two, which such values exist, and which of them is the smallest one that is greater than some other value, and which value is that other value?

The wording truly is terrible. How about rephrasing it: "We loop through the argument array and push in the smallest number which is greater than the current element, which consists of two multiplied by an integer.

Cool. Now, more than an hour after my last post I truly realised what I have to do. Ignore my last post, turns out I still didn’t understand what I was supposed to do, so the wording I suggested was wrong.

So the original problem of instructions unclear remains. And my brainpower is too exhausted to offer alternative wording.

but basically left column is the original numbers and right column is what is supposed to be returned. The forum doesn’t allow multiplication symbol, so instead I wrote “times”.

5 < 8 (1 times 2 times 2 times 2)
3 < 4 (1 times 2 times 2)
9 < 16 (1 times 2 times 2 times 2 times 2)
30 < 32 (1 times 2 times 2 times 2 times 2 times 2)

The challenge does a good job of walking us through the use of outer and inner loops, but the author may not have considered how well learners understand exponents or powers of 2. Even without that knowledge, the loop method works well if we keep successively multiplying by 2 until the value is greater than the given number.

Just be glad the author didn’t expect us to understand logarithms. (This is not a solution, since we are expected to repair the existing code.)