给你一个长度为 n
的整数数组 nums
和一个整数数组 queries
。
gcdPairs
表示数组 nums
中所有满足 0 <= i < j < n
的数对 (nums[i], nums[j])
的 最大公约数 升序 排列构成的数组。
对于每个查询 queries[i]
,你需要找到 gcdPairs
中下标为 queries[i]
的元素。
请你返回一个整数数组 answer
,其中 answer[i]
是 gcdPairs[queries[i]]
的值。
gcd(a, b)
表示 a
和 b
的 最大公约数 。
示例 1:
输入:nums = [2,3,4], queries = [0,2,2]
输出:[1,2,2]
解释:
gcdPairs = [gcd(nums[0], nums[1]), gcd(nums[0], nums[2]), gcd(nums[1], nums[2])] = [1, 2, 1]
.
升序排序后得到 gcdPairs = [1, 1, 2]
。
所以答案为 [gcdPairs[queries[0]], gcdPairs[queries[1]], gcdPairs[queries[2]]] = [1, 2, 2]
。
示例 2:
输入:nums = [4,4,2,1], queries = [5,3,1,0]
输出:[4,2,1,1]
解释:
gcdPairs
升序排序后得到 [1, 1, 1, 2, 2, 4]
。
示例 3:
输入:nums = [2,2], queries = [0,0]
输出:[2,2]
解释:
gcdPairs = [2]
。
提示:
2 <= n == nums.length <= 105
1 <= nums[i] <= 5 * 104
1 <= queries.length <= 105
0 <= queries[i] < n * (n - 1) / 2