多组询问求数组元素加i后的最大公因数
时间限制:1.0 s
内存限制:512.0 MB
题目描述
对于两个正整数 $a,b$,它们的最大公因数记为 $\gcd(a,b)$。对于 $k\geq3$ 个正整数 $c_1,c_2,\dots,c_k$,它们的最大公因数满足递推关系: $$\gcd(c_1,c_2,\dots,c_k) = \gcd(\gcd(c_1,c_2,\dots,c_{k-1}),c_k)$$
给定 $n$ 个正整数 $a_1,a_2,\dots,a_n$ 以及 $q$ 组询问。对于第 $i$($1 \leq i \leq q$)组询问,请求出 $a_1+i,a_2+i,\dots,a_n+i$ 的最大公因数,也即 $\gcd(a_1+i,a_2+i,\dots,a_n+i)$。
输入格式
第一行,两个正整数 $n,q$,分别表示给定正整数的数量,以及询问组数。 第二行,$n$ 个正整数 $a_1,a_2,\dots,a_n$。
输出格式
输出共 $q$ 行,第 $i$ 行包含一个正整数,表示第 $i$ 组询问的结果。
样例
输入样例 1
5 3
6 9 12 18 30
输出样例 1
1
1
3
输入样例 2
3 5
31 47 59
输出样例 2
4
1
2
1
4
数据范围
- 对于 60% 的测试点,保证 $1 \leq n \leq 10^3$,$1 \leq q \leq 10$。
- 对于所有测试点,保证 $1 \leq n \leq 10^5$,$1 \leq q \leq 10^5$,$1 \leq a_i \leq 1000$。
本题为编程题,提交代码并运行通过测试点后判分。
正在加载题目数据…
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析