Arrays 求大小K从1到n的所有子序列的gcd之和(以O(nlogn)为单位)

Arrays 求大小K从1到n的所有子序列的gcd之和(以O(nlogn)为单位),arrays,time-complexity,subsequence,Arrays,Time Complexity,Subsequence,假设a[]={1,2,3,4,5}和K=3 大小为k的所有子序列的gcd之和=gcd(1,2,3)+gcd(1,2,4)+gcd(1,2,5)+gcd(1,3,4)+gcd(1,3,5)+gcd(1,4,5)+gcd(2,3,4)+gcd(2,3,5)+gcd(2,4,5)+gcd(3,4,5)。 对于不同的k值,我们如何找到这个 2首先编写一个例程,该例程生成a的所有子序列,其余的子序列是一个带和的循环。但是查找子序列的时间复杂度是(O(n^2)),您能给出伪代码吗?对于gcd部分,由于子序

假设a[]={1,2,3,4,5}和K=3

大小为k的所有子序列的gcd之和=
gcd(1,2,3)+gcd(1,2,4)+gcd(1,2,5)+gcd(1,3,4)+gcd(1,3,5)+gcd(1,4,5)+gcd(2,3,4)+gcd(2,3,5)+gcd(2,4,5)+gcd(3,4,5)。

对于不同的k值,我们如何找到这个


  • 2首先编写一个例程,该例程生成
    a
    的所有子序列,其余的子序列是一个带和的循环。但是查找子序列的时间复杂度是(O(n^2)),您能给出伪代码吗?对于gcd部分,由于子序列的大小是n,所以复杂性也是如此/(k!(n-k)!)我几乎看不出如何像您的示例中那样生成所有子序列来实现O(n logn)。