数论迷城
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}对于给定的 n 个闭区间 [l_i, r_i],设正整数 k 是好的,当且仅当整数 k 被这 n 个区间包含至少一次,求所有好的 k 的最大公约数

【名词解释】
\hspace{15pt}最大公约数(gcd):指两个或多个整数共有约数中最大的一个。例如,1230 的公约数有 1,2,3,6,其中最大的约数是 6,因此记作 \gcd(12,30)=6。特别地,单个整数的 \gcd 定义为其自身。

输入描述:

\hspace{15pt}第一行输入一个正整数 n \left(1 \leq n \leq 10^5\right),表示区间的数量。
\hspace{15pt}此后 n 行,第 i 行输入两个正整数 l_i, r_i \left(1 \leq l_i \leq r_i \leq 10^{18}\right),表示第 i 个区间的左右端点。

输出描述:

\hspace{15pt}输出一个正整数 g,表示所有好的 k 的最大公约数。
示例1

输入

复制
3
1 2
4 4
5 6

输出

复制
1

说明

\hspace{15pt}在这个样例中,好的 k1, 2, 4, 5, 6,它们的最大公约数是 1
示例2

输入

复制
2
24 24
36 36

输出

复制
12

说明

\hspace{15pt}在这个样例中,好的 k24, 36,它们的最大公约数是 12