15012 - 最小公倍数
时间限制 : 1 秒
内存限制 : 128 MB
给定一个长度为 n 的正整数数组 a_1, a_2, \dots, a_n ,有 k 次查询。每次查询给出两个整数 l 和 r ( 1 \le l \le r \le n ),你需要输出区间 ([l, r]) 内所有数字的最小公倍数(LCM)。
输入
- 第一行包含两个整数 n 和 k ,分别表示数组长度和查询次数。
- 第二行包含 n 个正整数 a_1, a_2, \dots, a_n ,表示数组元素。
- 接下来 k 行,每行包含两个整数 l 和 r ,表示一次查询的区间。
输出
对于每次查询,输出一行一个整数,表示该区间内所有数的最小公倍数。
样例
输入
6 3 3 1 2 6 4 9 1 6 1 3 4 4
输出
36 6 6
提示
样例说明
- 第一次查询区间 [1,6] 的数字为
3,1,2,6,4,9,它们的 LCM 为 36。 - 第二次查询区间 [1,3] 的数字为
3,1,2,LCM 为 6。 - 第三次查询区间 [4,4] 只有一个数字
6,LCM 为 6。
数据范围与约定
- 1 \le n, k \le 10^5
- 1 \le a_i \le 30
- 1 \le l \le r \le n
- 结果保证在 64 位有符号整数范围内(使用
long long存储)。