मान लीजिए कि हमारे पास अंक नामक एक सरणी है जिसमें केवल अंक होते हैं। हमें दिए गए अंकों में से न्यूनतम संभव संख्या ज्ञात करनी है और फिर यह जांचना है कि उत्पन्न संख्या के पहले और अंतिम अंक लेकर संख्याएं अभाज्य हैं या नहीं। हम नंबर को और फिर अभाज्य संख्याओं को प्रिंट करेंगे।
इसलिए, यदि इनपुट अंकों की तरह है =[5,2,1,7], तो आउटपुट होगा 1257 सबसे छोटी संख्या है। पहले और अंतिम अंक लेने से संख्या 17 और 71 है, दोनों अभाज्य हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- digits_freq :=अंकों की बारंबारता वाला नक्शा
- संख्या:=रिक्त स्ट्रिंग
- 0 से 9 की श्रेणी में i के लिए, करें
- जे के लिए 0 से लेकर अंक_फ़्रेक तक[i] - 1, करते हैं
- संख्या :=संख्या संयोजन अंक i
- जे के लिए 0 से लेकर अंक_फ़्रेक तक[i] - 1, करते हैं
- संख्या:=संख्या का पहला और अंतिम अंक लेकर
- rev :=संख्या का अंतिम और पहला अंक लेकर
- यदि अंक अभाज्य है और रेव अभाज्य है, तो
- वापसी संख्या, संख्या, रेव
- अन्यथा जब संख्या अभाज्य हो, तब
- वापसी संख्या, संख्या
- अन्यथा जब रेव प्राइम है, तब
- रिटर्न नंबर, रेव
- अन्यथा,
- झूठी वापसी
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण कोड
from collections import defaultdict def isPrime(num): if num > 1: for i in range(2, num): if num % i == 0: return False return True return False def solve(arr): digits_freq = defaultdict(int) for i in range(len(arr)): digits_freq[arr[i]] += 1 number = "" for i in range(0, 10): for j in range(digits_freq[i]): number += str(i) num = int(number[0] + number[-1]) rev = int(number[-1] + number[0]) if isPrime(num) and isPrime(rev): return int(number), num, rev elif isPrime(num): return number, num elif isPrime(rev): return number, rev else: return False digits = [5,2,1,7] print(solve(digits))
इनपुट
[5,2,1,7]
आउटपुट
(1257, 17, 71)