สมมุติว่าเราได้รับตัวเลขแล้วเราต้องตรวจสอบว่าตัวเลขนั้นหารด้วย 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