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