สมมติว่าเรามีตัวเลข n และอีกจำนวนหนึ่ง k เราต้องตรวจสอบว่าผลคูณของหลักที่ตำแหน่งคู่ของ n หารด้วย k ลงตัวหรือไม่ สถานที่เริ่มนับจากขวาไปซ้าย ขวาสุดอยู่ที่ตำแหน่งที่ 1
ดังนั้น หากอินพุตเท่ากับ n =59361 ผลลัพธ์จะเป็น True เนื่องจาก (1*3*5) หารด้วย 3 ลงตัว
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- digit_count :=การนับจำนวนหลัก n
- ผลผลิต :=1
- ในขณะที่ n> 0, ทำ
- ถ้า digit_count เป็นเลขคู่
- prod :=prod * ตัวเลขสุดท้ายของ n
- n :=ผลหารของ (n / 10)
- digit_count :=digit_count - 1
- ถ้า digit_count เป็นเลขคู่
- ถ้า prod หารด้วย k ลงตัว
- คืนค่า True
- คืนค่าเท็จ
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
โค้ดตัวอย่าง
from math import log10 def solve(n, k): digit_count = int(log10(n))+1 prod = 1 while n > 0 : if digit_count % 2 == 0 : prod *= n % 10 n = n // 10 digit_count -= 1 if prod % k == 0: return True return False n = 59361 k = 3 print(solve(n, k))
อินพุต
59361, 3
ผลลัพธ์
True