मान लीजिए कि हमारे पास एक सरणी संख्या है। हमें यह जांचना है कि दिए गए सरणी में सभी अभाज्य तत्वों का योग भी अभाज्य है या नहीं
इसलिए, यदि इनपुट अंकों की तरह है =[1,2,4,5,3,3], तो आउटपुट सही होगा क्योंकि सभी अभाज्य संख्याओं का योग है (2+5+3+3) =13 और 13 भी है प्रधान।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- अधिकतम:=10000
- छलनी:=आकार MAX की एक सूची और सत्य से भरें
- एक फ़ंक्शन परिभाषित करें generate_list_of_primes()
- छलनी[0] :=झूठा, चलनी[1] :=झूठा
- 2 से MAX-1 की श्रेणी में i के लिए
- यदि चलनी[i] सत्य है, तो
- जे के लिए 2^i से MAX तक, i द्वारा बढ़ाएं
- छलनी[j] :=गलत
- जे के लिए 2^i से MAX तक, i द्वारा बढ़ाएं
- यदि चलनी[i] सत्य है, तो
- मुख्य विधि से निम्न कार्य करें:
- generate_list_of_primes()
- कुल :=0
- मैं के लिए 0 से लेकर एआर -1 के आकार की सीमा में, करो
- अगर चलनी[arr[i]] सच है, तो
- कुल:=कुल + गिरफ्तारी[i]
- अगर चलनी[arr[i]] सच है, तो
- यदि चलनी[कुल] सत्य है, तो
- सही लौटें
- झूठी वापसी
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण कोड
MAX = 10000 sieve = [True] * MAX def generate_list_of_primes() : sieve[0] = False sieve[1] = False for i in range(2, MAX) : if sieve[i] : for j in range(2**i, MAX, i) : sieve[j] = False def solve(arr) : generate_list_of_primes() total = 0 for i in range(len(arr)) : if sieve[arr[i]] : total += arr[i] if sieve[total] : return True return False nums = [1,2,4,5,3,3] print(solve(nums))
इनपुट
[1,2,4,5,3,3]
आउटपुट
True