मान लीजिए कि हमारे पास 1 से अधिक संख्या n है, तो हमें इसके सभी अभाज्य गुणनखंडों को खोजना होगा और उन्हें क्रमबद्ध क्रम में वापस करना होगा। हम किसी संख्या को अभाज्य संख्याओं के गुणनफल के रूप में लिख सकते हैं, वे उसके अभाज्य गुणनखंड हैं। और एक ही अभाज्य गुणक एक से अधिक बार हो सकता है।
तो, अगर इनपुट 42 जैसा है, तो आउटपुट [2, 3, 7] होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- res:=एक नई सूची
- जबकि n mod 2 0 के समान है, करें
- रेस के अंत में 2 डालें
- n :=n/2 का भागफल
- i के लिए 3 से लेकर (n का वर्गमूल) तक, चरण 2 में वृद्धि
- जबकि n mod i 0 के समान है, करते हैं
- res के अंत में i डालें
- n :=n/i का भागफल
- जबकि n mod i 0 के समान है, करते हैं
- यदि n> 2, तो
- रेस के अंत में n डालें
- रिटर्न रेस
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, n): res=[] while n%2==0: res.append(2) n//=2 for i in range(3,int(n**.5)+1,2): while n%i==0: res.append(i) n//=i if n>2: res.append(n) return res ob = Solution() print(ob.solve(42))
इनपुट
42
आउटपुट
[2, 3, 7]