Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra tích chữ số vị trí chẵn có chia hết cho tổng chữ số vị trí lẻ trong Python

Giả sử chúng ta có một số n, ta cần kiểm tra xem tích các chữ số ở các vị trí chẵn của n có chia hết cho tổng các chữ số ở các vị trí lẻ hay không. Các vị trí được đếm từ phải sang trái, vị trí 1 là chữ số cuối cùng bên phải.

Ví dụ: với n = 59361, kết quả là True vì (1*3*5) = 15 chia hết cho (6+9) = 15.

Giải thuật

  • digit_count := số chữ số của n.
  • total := 0, prod := 1.
  • Khi n > 0, lặp:
    • Nếu digit_count chẵn: prod *= n % 10.
    • Ngược lại: total += n % 10.
    • n := n // 10.
    • digit_count := digit_count - 1.
  • Nếu prod % total == 0 trả về True, ngược lại False.

Mã ví dụ

from math import log10

def solve(n):
    digit_count = int(log10(n)) + 1
    total = 0
    prod = 1
    while n > 0:
        if digit_count % 2 == 0:
            prod *= n % 10
        else:
            total += n % 10
        n = n // 10
        digit_count -= 1
    if prod % total == 0:
        return True
    return False

n = 59361
print(solve(n))

Đầu vào

59361

Đầu ra

True