สมมติว่าเรามีจำนวน n เราต้องตรวจสอบว่าตัวเลขทุกหลักของมันสามารถหาร n ลงตัวได้หรือไม่
เช่น ถ้าอินพุตเป็น n = 135 ผลลัพธ์จะเป็น True เนื่องจาก (135 / 1 = 135), (135 / 3 = 45) และ (135 / 5 = 27)
ในการแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้:
- val := n
- while val > 0 ทำ
- d := val mod 10
- ถ้า n ไม่หาร d ลงตัว แล้ว
- คืนค่า False
- val := ผลหารของ (val / 10)
- คืนค่า True
ลองดูการนำไปใช้ดังต่อไปนี้เพื่อเข้าใจได้ดียิ่งขึ้น:
ตัวอย่าง
def is_divisible(n, d):
return d != 0 and n % d == 0
def solve(n):
val = n
while (val > 0):
d = val % 10
if not is_divisible(n, d):
return False
val = val // 10
return True
n = 135
print(solve(n))
อินพุต
135
ผลลัพธ์
True