मान लीजिए कि हमारे पास एक संख्या n है, हमें n के बराबर n से छोटी सभी अभाज्य संख्याओं की एक सूची आरोही क्रम में बनानी होगी। हमें यह ध्यान रखना होगा कि 1 एक अभाज्य संख्या नहीं है।
इसलिए, अगर इनपुट 12 जैसा है, तो आउटपुट [2, 3, 5, 7, 11] होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- छलनी:=आकार n+1 की एक सूची और सही से भरें
- प्राइम्स:=एक नई सूची, शुरू में खाली
- 2 से n की श्रेणी में i के लिए, करें
- अगर चलनी[i] सच है, तो
- प्राइम्स के अंत में i डालें
- i से n की श्रेणी में j के लिए, प्रत्येक चरण में i द्वारा अपडेट करें, do
- छलनी[j] :=गलत
- अगर चलनी[i] सच है, तो
- रिटर्न प्राइम
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, n): sieve = [True] * (n + 1) primes = [] for i in range(2, n + 1): if sieve[i]: primes.append(i) for j in range(i, n + 1, i): sieve[j] = False return primes ob = Solution() print(ob.solve(12))
इनपुट
12
आउटपुट
[2, 3, 5, 7, 11]