मान लीजिए हमारे पास एक संख्या n है, और दूसरी संख्या k है, हमें जांचना है कि n के सम स्थानों पर अंकों का गुणनफल k से विभाज्य है या नहीं। स्थानों की गिनती दाएं से बाएं शुरू होती है। सबसे दायां स्थान 1 पर है।
तो, यदि इनपुट n = 59361 जैसा है, तो आउटपुट True होगा क्योंकि (1*3*5), 3 से विभाज्य है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- digit_count := दी गई संख्या n के अंकों की गिनती
- prod := 1
- जब तक n > 0, करें
- यदि digit_count सम है, तो
- prod := prod * n का अंतिम अंक
- n := (n / 10) का भागफल
- digit_count := digit_count - 1
- यदि digit_count सम है, तो
- यदि prod k से विभाज्य है, तो
- True लौटाएं
- False लौटाएं
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण कोड
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))
इनपुट
59361, 3
आउटपुट
True