Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem tích các chữ số ở vị trí chẵn có chia hết cho tổng các chữ số ở vị trí lẻ của một số hay không trong Python

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

Vì vậy, nếu đầu vào là n =59361, thì đầu ra sẽ là Đúng là (1 * 3 * 5) =(6 + 9).

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • digit_count:=số lượng chữ số của số n đã cho
  • tổng:=0, prod:=1
  • while n> 0, do
    • nếu số_khoảng số là chẵn, thì
      • prod:=prod * chữ số cuối cùng của n
    • nếu không,
      • tổng:=tổng + chữ số cuối cùng của n
    • n:=thương số của (n / 10)
    • digit_count:=digit_count - 1
  • nếu sản phẩm chia hết cho tổng thì
    • trả về True
  • trả về Sai

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Mã mẫu

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