4723: 【GESP2506五级】最⼤公因数

内存限制:512 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

样例输入 复制

5 3
6 9 12 18 30

样例输出 复制

1 1 3

提示

#include <cstdio>
#include <algorithm>
using namespace std;
const int N = 1e5 + 5;
int n, q, a[N], g;

int gcd(int a, int b) {
    if (a == 0 || b == 0)
        return a + b;
    return gcd(b, a % b);
}
int main() {
    scanf("%d%d", & n, & q);
    for (int i = 1; i <= n; i++)
        scanf("%d", & a[i]);
    sort(a + 1, a + n + 1);
    for (int i = 2; i <= n; i++)
        g = gcd(g, a[i] - a[i - 1]);
    for (int i = 1; i <= q; i++)
        printf("%d\n", gcd(g, a[1] + i));
    return 0;
}