powers 数组是 非递减 顺序的。根据前面描述,构造 powers 数组的方法是唯一的。

请你返回一个数组 answers ,长度与 queries 的长度相同,其中 answers[i]是第 i 个查询的答案。1 <= n <= 10^9

1 <= queries.length <= 10^5

由题目给出的定义,要求出 powers 数组有一种简单的方法就是从低位开始遍历 n 的二进制位。

这样拿到 powers 数组之后剩下的就好做了,直接枚举区间求积就好了。

如果想提高效率可以用前缀积的方式来做,但要注意溢出。