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