Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

หาความต่างน้อยที่สุดระหว่างตารางคูณที่เลื่อนของสองจำนวนใน Python

สมมติว่าเรามีจำนวน 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

ขั้นตอนการแก้ปัญหา

  1. คำนวณ g = gcd(p, q)
  2. คำนวณ difference = |r - s| % g
  3. คืนค่า 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