मान लीजिए हमारे पास दो संख्याएं p और q हैं, हमें p और q की शिफ्ट की गई अनंत टेबल्स में किन्हीं दो पदों के बीच न्यूनतम अंतर ढूंढना है, ये शिफ्ट r और s हैं, जहां r, s >= 0।
तो, यदि इनपुट p = 7 और q = 17, r = 6 और s = 3 जैसा है, तो आउटपुट 0 होगा क्योंकि, 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
difference := |r-s| mod g
difference और g - difference का न्यूनतम लौटाएं
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
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