मान लीजिए हमारे पास एक संख्या n है, और एक और संख्या k है। हमें जांचना है कि क्या n को k अभाज्य संख्याओं के योग के रूप में दर्शाया जा सकता है या नहीं।
तो, यदि इनपुट n = 30, k = 3 है, तो आउटपुट True होगा क्योंकि 30 को 2 + 11 + 17 के रूप में दर्शाया जा सकता है।
इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:
- यदि n < k*2, तो
- False लौटाएं
- यदि k > 2, तो
- True लौटाएं
- यदि k, 2 के समान है, तो
- यदि n सम है, तो
- True लौटाएं
- यदि (n-2) अभाज्य है, तो
- True लौटाएं
- False लौटाएं
- यदि n सम है, तो
- यदि n अभाज्य है, तो
- True लौटाएं
- False लौटाएं
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
def isPrime(num): if num > 1: for i in range(2, num): if num % i == 0: return False return True return False def solve(n, k): if n < k*2: return False if k > 2: return True if k == 2: if n%2 == 0: return True if isPrime(n-2): return True return False if isPrime(n): return True return False n = 30 k = 3 print(solve(n, k))
इनपुट
30, 3
आउटपुट
True