ধরুন আমাদের একটি সংখ্যা n আছে, আমাদের ঊর্ধ্বক্রম অনুসারে n থেকে অরিকুয়াল থেকে ছোট সমস্ত মৌলিক সংখ্যার একটি তালিকা তৈরি করতে হবে। আমাদের মনে রাখতে হবে যে 1 একটি মৌলিক সংখ্যা নয়।
সুতরাং, যদি ইনপুট 12 এর মত হয়, তাহলে আউটপুট হবে [2, 3, 5, 7, 11]।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- চালনি :=n+1 আকারের একটি তালিকা এবং True দিয়ে পূরণ করুন
- primes :=একটি নতুন তালিকা, প্রাথমিকভাবে ফাঁকা
- 2 থেকে n রেঞ্জের i জন্য, করুন
- যদি চালনি[i] সত্য হয়, তাহলে
- প্রাইম এর শেষে i ঢোকান i থেকে n রেঞ্জে j-এর জন্য, i দ্বারা প্রতিটি ধাপে আপডেট করুন, করুন
- চালনী[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]