สมมุติว่าเราได้รับตัวเลขแล้วเราต้องตรวจสอบว่าตัวเลขนั้นหารด้วย 17 ลงตัวหรือไม่
ดังนั้นหากอินพุตเป็น 99943 เอาต์พุตจะเป็นแบบแบ่งส่วนได้
เราจะแก้ปัญหานี้โดยใช้วิธีการลบซ้ำ โดยแยกตัวเลขหลักสุดท้ายของตัวเลขออกแล้วลบออก 5 ครั้งจากตัวเลขจนได้ตัวเลขสองหลักที่หารด้วย 17 ลงตัว
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ในขณะที่จำนวนหารด้วย 100 ลงตัว ให้ทำ
- last_digit :=หมายเลข mod 10
- จำนวน :=มูลค่าพื้นของ (ตัวเลขหารด้วย 10)
- number :=number - last_digit * 5
- คืนค่า จริง หาก mod 17 เท่ากับ 0
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
def solve(number) : while(number // 100) : last_digit = number % 10 number //= 10 number -= last_digit * 5 return (number % 17 == 0) number = 99943 if solve(number) : print("Divisible") else : print("Not Divisible")
อินพุต
99943
ผลลัพธ์
Divisible