#P1267. 求两点之间的格点个数

求两点之间的格点个数

题目描述

给定直角坐标系中两个点 AABB 的坐标 (ax,ay)(a_x, a_y)(bx,by)(b_x, b_y),其中 ax,ay,bx,bya_x, a_y, b_x, b_y 均为整数。求线段 ABABAABB 之间的格点个数(不包括 AABB 本身)。

本题需要处理多个测试数据。

输入格式

第一行一个整数 TT,表示测试数据组数(1T1001 \le T \le 100)。

接下来 TT 行,每行四个整数 ax  ay  bx  bya_x \; a_y \; b_x \; b_y109ax,ay,bx,by109-10^9 \le a_x, a_y, b_x, b_y \le 10^9)。

输出格式

对每组测试数据,输出一行,表示对应的格点个数。

样例

1
1 2 25 20
5

说明/提示

xx 坐标差的绝对值为 xxxxyy 坐标差的绝对值为 yyyy。若 A=BA=B,答案为 00。否则计算 g=gcd(xx,yy)g = \gcd(xx, yy)(若 xxxxyyyy00,则 gg 取非零的那个值),答案为 g1g-1