สมมติว่าเรามีจำนวน p และ q ต้องการหาความต่างน้อยที่สุดระหว่างพจน์ใดพจน์หนึ่งในตารางคูณที่เลื่อนของ p และ q โดยการเลื่อนคือ r และ s (r, s ≥ 0)
เช่น p = 7, q = 17, r = 6, s = 3 ผลลัพธ์คือ 0 เพราะตารางคูณ 7 เลื่อน 6 ได้ [..., 34, ...] และตารางคูณ 17 เลื่อน 3 ได้ [..., 34, ...] ความต่าง = 0
ขั้นตอนการแก้ปัญหา
- คำนวณ
g = gcd(p, q) - คำนวณ
difference = |r - s| % g - คืนค่า
min(difference, g - difference)
ตัวอย่างโค้ด Python
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