兔八哥与猎人
题目描述
兔八哥躲藏在树林旁边的果园里。果园有 M × N M \times N M×N 棵树,组成一个 M M M 行 N N N 列的矩阵,水平或垂直相邻的两棵树的距离为 1 1 1。兔八哥在一棵果树下。
猎人背着猎枪走进了果园,他爬上一棵果树,准备杀死兔八哥。
如果猎人与兔八哥位置的连线上没有其它的果树,猎人就可以看到兔八哥。
现己知猎人和兔八哥的位置,编写程序判断兔子所在的位置是否安全。
输入格式
第一行为 n n n,表示有 n n n 组数据,每组数据的第一行为两个正整数 a x a_x ax 和 a y a_y ay,表示猎人的位置,第二行为两个正整数 b x b_x bx 和 b y b_y by,表示兔八哥的位置。
输出格式
共有
n
n
n 行,每行为 yes
或 no
表示兔八哥的位置是否安全。
样例 #1
样例输入 #1
1
1 1
1 2
样例输出 #1
no
提示
1 ≤ n ≤ 1 0 5 1\le n \le 10^5 1≤n≤105, 1 ≤ a x , a y , b x , b y ≤ 1 0 8 1 \le a_x, a_y, b_x, b_y \le 10^8 1≤ax,ay,bx,by≤108。
知识点
这个就记住吧,丰富题库。
若两坐标之差的最大公因数==1(互质),则说明两个坐标之间没有其他点。
互质的概念:两个整数货多个整数只有一个公因数1,比如(7,9)。
import math
n = int(input())
for i in range(n):
ax,ay = map(int,input().split())
bx,by = map(int,input().split())
p = abs(ax - bx)
q = abs(ay - by)
if math.gcd(p,q)==1:
print("no")
else:
print("yes")