ภาพรวม
บทความนี้แสดงวิธีการตรวจสอบว่าเลขจำนวนมาก (large number) หารด้วย 19 ลงตัวหรือไม่ โดยใช้วิธี "การบวกซ้ำ" (repeated addition method) ซึ่งเป็นอัลกอริทึมที่มีประสิทธิภาพและไม่ต้องใช้การหารโดยตรงกับเลขใหญ่ทั้งหมด
หลักการทำงาน
- นำหลักสุดท้ายของเลขมาคูณด้วย 2
- นำผลคูณมาบวกกับเลขที่เหลือ (หลังจากตัดหลักสุดท้ายออก)
- ทำซ้ำขั้นตอน 1-2 จนกว่าเลขจะเหลือ 2 หลัก
- ตรวจสอบว่าเลข 2 หลักที่ได้ หาร 19 ลงตัวหรือไม่
ตัวอย่างโค้ด Python
def solve(number):
while number // 100:
last_digit = number % 10
number //= 10
number += last_digit * 2
return number % 19 == 0
number = 86982
if solve(number):
print("Divisible")
else:
print("Not Divisible")
ผลลัพธ์
Divisible
คำอธิบายเพิ่มเติม
วิธีนี้ใช้หลักคณิตศาสตร์ว่า ถ้าเลข n หาร 19 ลงตัว แล้วเลขที่ได้จากการนำหลักสุดท้ายคูณ 2 มาบวกกับส่วนที่เหลือ ก็จะหาร 19 ลงตัวเช่นกัน ทำให้สามารถลดขนาดเลขลงเรื่อยๆ จนตรวจสอบได้ง่าย