题目名称 3064. 区间最大公约数
输入输出 gcd.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 10
题目来源 Gravatarsyzhaoss 于2026-01-30加入
开放分组 全部用户
提交状态
分类标签
ST表 倍增法
分享题解
通过:1, 提交:2, 通过率:50%
Gravatarsyzhaoss 100 1.905 s 4.03 MiB C++
Gravatarsyzhaoss 60 4.436 s 3.69 MiB C++
关于 区间最大公约数 的近10条评论(全部评论)

3064. 区间最大公约数

★★   输入文件:gcd.in   输出文件:gcd.out   简单对比
时间限制:1 s   内存限制:512 MiB

【题目描述】

给定 $n$ 个正整数 $a_1,a_2,\dots,a_n$。

$m$ 次询问,每次询问给定一个区间 $[l,r]$,输出 $a_l,a_{l+1},\dots,a_r$ 的最大公因数。

【输入格式】

第一行两个整数 $n,m$。  

第二行 $n$ 个整数表示 $a_1,a_2,\dots,a_n$。  

以下 $m$ 行,每行两个整数 $l, r$ 表示询问区间的左右端点。

【输出格式】

共 $m$ 行,每行表示一个询问的答案。

【样例输入】

5 3
4 12 3 6 7
1 3
2 3
5 5

【样例输出】

1
3
7

【数据规模与约定】

对于 $30\%$ 的数据,$1\leq n \leq 100$,$1\leq m \leq 10$;  

对于 $60\%$ 的数据,$1\leq m \leq 1000$;

对于 $100\%$ 的数据,$1 \leq l \leq r \leq n \leq 1000$,$1\leq m \leq 10^6$,$1 \leq a_i \leq 10^9$。