编程题
### 问题描述 作为探险小队的一员,你们成功进入了一个藏有宝藏的洞穴。但在前往宝藏的路上,你们遇到了一条阻挡去路的大河。这条河里住着一只居住了千年的乌龟,它愿意帮助你们过河,但在过河的过程中,乌龟会不断地提问。如果你们不能及时回答正确,乌龟将会把你们丢入河中。 在出发前,乌龟会给你们一个长度为 $n$ 的数组 $a$ 。在过河的途中,乌龟总共会提出 $q$ 个问题。对于每个问题,它会给出一个整数 $k$ ,并询问从数组 $a$ 中任意选 $k$ 个数,使得它们的最大公约数尽量大,这个最大的公约数是多少?需要注意一点,一个数最大公约数我们视为它本身。 作为队内最聪明的人,你必须想出一个策略来回答乌龟的问题,成功帮助小队安全过河。 ### 输入格式 第一行输入两个整数 $n$ 和 $q$ ,表示数组 $a$ 的长度和询问的次数。 第二行输入 $n$ 个整数表示数组 $a$,以空格隔开。 接下来 $q$ 行,每行一个整数 $k$ 。 数据保证 $2 \leq n \leq 10^5,1 \leq a_i \leq 10^5,1 \leq q \leq10^5,1 \leq k \leq n$。 ### 输出格式 输出 $q$ 行,第 $i$ 行表示第 $i$ 次询问的答案。 ### 样例输入 ``` 5 3 1 2 3 4 6 2 3 5 ``` ### 样例输出 ``` 3 2 1 ``` ### 说明 对于样例的第一个询问,$\gcd(3,6)=3$,对于第二个询问 $\gcd(2,4,6)=2$,对于第三个询问 $\gcd(1,2,3,4,6)=1$。
查看答案
赣ICP备20007335号-2