मान लीजिए हमारे पास एक संख्या n है, हमें n से छोटी या बराबर सभी अभाज्य संख्याओं की सूची आरोही क्रम में जनरेट करनी है। हमें ध्यान रखना होगा कि 1 अभाज्य संख्या नहीं है।
उदाहरण के लिए, यदि इनपुट है 12, तो आउटपुट होगा [2, 3, 5, 7, 11]।
हल करने के चरण
sieve :=आकारn+1की सूची,Trueसे भरी हुई।primes :=एक नई सूची, प्रारंभ में खाली।iको 2 सेnतक:- यदि
sieve[i]सत्य है, तो:iकोprimesके अंत में डालें।jकोiसेnतक, प्रत्येक चरण मेंiसे अपडेट करते हुए:sieve[j] := False
- यदि
primesलौटाएं।
उदाहरण
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]