塔子哥是一个喜欢数学和游戏的年轻人。有一天,他发明了一个新的游戏,可以考验人们的智力和数学知识。
这个游戏的规则很简单:给定一个长度为n的整数序列a和一个正整数k,玩家需要从序列a中删掉一些数,使得剩下的数的最大公约数等于k。例如,如果序列a为[2,4,6,8],k=2,则玩家可以删掉4和8,剩下的数为[2,6],它们的最大公约数是2。
找出所有是k的倍数的数,假设总共x个。那么算下他们的子集个数2x−1
这就是答案了?并不是! 这不是"gcd恰好等于k" 的子集个数,而是"gcd是k的倍数"的子集个数。观察他们的关系,我们可以发现:
"gcd是k的倍数"的子集个数 = "gcd恰好是k"的子集个数 + "gcd恰好是2k"的子集个数 + .. + "gcd恰好是ck"的子集个数
本题属于以下题库,请选择所需题库进行购买