Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่าผลคูณหลักเลขตำแหน่งคู่ หาร k ลงตัวหรือไม่ด้วย Python

โจทย์: กำหนดเลข 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

อัลกอริทึม

  1. นับจำนวนหลัก (digit_count = floor(log10(n)) + 1)
  2. prod = 1
  3. While n > 0:
    • ถ้า digit_count เป็น Even → prod *= n % 10
    • n //= 10, digit_count -= 1
  4. ตรวจสอบ 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