두 개의 숫자 p와 q가 있다고 가정하고 p와 q의 이동된 무한 테이블에서 항 사이의 최소 차이를 찾아야 합니다. 이러한 이동은 r과 s입니다. 여기서 r, s>=0.
따라서 입력이 p =7 및 q =17, r =6 및 s =3인 경우 출력은 7의 테이블 =[7, 14, 21, 28, 35, 42, 49, ...] 및 17의 테이블 =[17, 34, 51, 68, 85, 102, 119, ...], 7의 이동된 테이블은 [13, 20, 27, 34, 41, 48, 55가 됩니다. , ...]이고 17의 이동된 테이블은 [20, 37, 54, 71, 88, 105, 121, ...]이고, 이러한 이동된 테이블의 두 항 사이의 최소 차이는 20-20 =0입니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
g :=(p, q)의 gcd
-
차이 :=|r-s| 모드 g
-
차이의 최소값을 반환하고 g - 차이
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
import math def get_minimum_diff (p, q, r, s): g = math.gcd(p,q) difference = abs(r-s) % g return min(difference, g - difference) p = 7 q = 17 r = 6 s = 3 print(get_minimum_diff(p, q, r, s))
입력
7,17,6,3
출력
0