โจทย์: กำหนดเลข n และ k ตรวจสอบว่าผลคูณหลักเลขตำแหน่งคู่ (นับจากขวา: Units=1, Tens=2, ...) หาร k ลงตัวหรือไม่
ตัวอย่าง
n = 59361, k = 3 → ตำแหน่งคู่: 6 (pos2), 9 (pos4) → Product = 54 → 54%3=0 → True
หมายเหตุ: ตัวอย่างต้นฉบับระบุ (1*3*5) ผิด ตำแหน่งคู่คือ 6 และ 9
อัลกอริทึม
- นับจำนวนหลัก (digit_count = floor(log10(n)) + 1)
- prod = 1
- While n > 0:
- ถ้า digit_count เป็น Even → prod *= n % 10
- n //= 10, digit_count -= 1
- ตรวจสอบ prod % k == 0
โค้ดตัวอย่าง
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))
Input / Output
Input: 59361, 3 Output: True