Giả sử chúng ta có một số n và một số k khác, 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 k hay không. Địa điểm đượ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 vì (1 * 3 * 5) chia hết cho 3.
Để 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
- 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:=thương số của (n / 10)
- digit_count:=digit_count - 1
- nếu số_khoảng số là chẵn, thì
- nếu sản phẩm chia hết cho k 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, 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))
Đầu vào
59361, 3
Đầu ra
True