Processing math: 85%
编程题
                ### 问题描述

作为探险小队的一员,你们成功进入了一个藏有宝藏的洞穴。但在前往宝藏的路上,你们遇到了一条阻挡去路的大河。这条河里住着一只居住了千年的乌龟,它愿意帮助你们过河,但在过河的过程中,乌龟会不断地提问。如果你们不能及时回答正确,乌龟将会把你们丢入河中。

在出发前,乌龟会给你们一个长度为 n 的数组 a 。在过河的途中,乌龟总共会提出 q 个问题。对于每个问题,它会给出一个整数 k ,并询问从数组 a 中任意选 k 个数,使得它们的最大公约数尽量大,这个最大的公约数是多少?需要注意一点,一个数最大公约数我们视为它本身。

作为队内最聪明的人,你必须想出一个策略来回答乌龟的问题,成功帮助小队安全过河。

输入格式

第一行输入两个整数 nq ,表示数组 a 的长度和询问的次数。

第二行输入 n 个整数表示数组 a,以空格隔开。

接下来 q 行,每行一个整数 k

数据保证 2n1051ai1051q1051kn

输出格式

输出 q 行,第 i 行表示第 i 次询问的答案。

样例输入

5 3
1 2 3 4 6
2
3
5

样例输出

3
2
1

说明

对于样例的第一个询问,gcd,对于第二个询问 \gcd(2,4,6)=2,对于第三个询问 \gcd(1,2,3,4,6)=1

查看答案
赣ICP备20007335号-2