题目描述
在一个直角坐标系中有一条线段,求这条线段上有几个整数点;
输入
输入一个数T(T<10000),表示有T组测试数据;
每组数据输入有四个整数x1, y1, x2, y2,表示线段的两端点坐标;
(-1e16<=x1,x2,y1,y2<=1e16)
输出
输出一个整数,表示这条线段上整数点个数;
样例输入
2 1 1 5 5 1 3 4 12
样例输出
5 4
题意 : 判断直线上的整点的个数,求一个 gcd 就可以
ll a1, b1, a2, b2;
ll gcd(ll a, ll b){
return b==0?a:gcd(b, a%b);
}
int main() {
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
int t;
cin >>t;
while(t--){
scanf("%lld%lld%lld%lld", &a1, &b1, &a2, &b2);
ll f1 = abs(a1-a2);
ll f2 = abs(b1-b2);
ll g = gcd(f1, f2);
printf("%lld\n", g+1);
}
return 0;
}