একটি গ্যারেজ সেলে আপনি কম্পিউটারের এলোমেলো যন্ত্রাংশের একটি বড় বাক্স কিনেছেন। নিজের পছন্দমতো কম্পিউটার বানানোর জন্য আপনি যন্ত্রাংশগুলো জোড়া লাগাতে শুরু করেছেন।
বিভিন্ন সমন্বয়ে যন্ত্রাংশগুলো কেমন পারফর্ম করে তা আপনি পরীক্ষা করে দেখতে চান, তাই আপনার কম্পিউটারগুলো একে অন্যের তুলনায় কেমন তা বোঝার জন্য নিজেই একটি বেঞ্চমার্কিং প্রোগ্রাম বানানোর সিদ্ধান্ত নেন। আপনি বেছে নেন বিখ্যাত "Sieve of Eratosthenes" অ্যালগরিদমটি। এটি প্রাচীন একটি অ্যালগরিদম, তবে আপনার কম্পিউটারকে সীমা পর্যন্ত ঠেলে দেবে।
আপনার কাজ হলো এমন একটি প্রোগ্রাম তৈরি করা যা এরাটোস্থেনিসের সিভ অ্যালগরিদম ব্যবহার করে একটি নির্দিষ্ট সংখ্যার চেয়ে ছোট বা সমান সব মৌলিক সংখ্যা খুঁজে বের করে।
মৌলিক সংখ্যা হলো ১-এর চেয়ে বড় এমন একটি সংখ্যা, যা কেবল ১ এবং নিজে দিয়ে বিভাজ্য। উদাহরণস্বরূপ, ২, ৩, ৫, ৭, ১১ এবং ১৩ মৌলিক সংখ্যা। এর বিপরীতে, ৬ নয় একটি মৌলিক সংখ্যা, কারণ এটি কেবল ১ এবং নিজে দিয়ে নয়, ২ এবং ৩ দিয়েও বিভাজ্য।
এরাটোস্থেনিসের সিভ ব্যবহার করতে, প্রথমে ২ এবং আপনার নির্দিষ্ট সংখ্যার মধ্যবর্তী সব সংখ্যার একটি তালিকা তৈরি করুন। এরপর নিচের ধাপগুলো বারবার পুনরাবৃত্তি করুন:
আপনার তালিকার প্রতিটি সংখ্যা শেষ না হওয়া পর্যন্ত আপনি এই ধাপগুলো বারবার করতে থাকুন। শেষে, চিহ্নিত না করা সব সংখ্যাই মৌলিক।
টেস্টগুলো এটা যাচাই করে না যে আপনি অ্যালগরিদমটি সঠিকভাবে বাস্তবায়ন করেছেন কি না, শুধু এটা দেখে যে আপনি সঠিক মৌলিক সংখ্যার তালিকা বের করতে পেরেছেন কি না। আপনি সিভটি ঠিকভাবে বাস্তবায়ন করছেন কি না তা যাচাই করতে, ভালো একটি প্রথম পরীক্ষা হলো এটা দেখা যে আপনি ভাগ বা ভাগশেষের অপারেশন ব্যবহার করছেন না।
ধরা যাক, আপনি ১০-এর চেয়ে ছোট বা সমান মৌলিক সংখ্যাগুলো খুঁজছেন।
আপনি সব সংখ্যা পরীক্ষা করেছেন এবং দেখলেন ২, ৩, ৫ এবং ৭ এখনো চিহ্নিত নয়, অর্থাৎ এগুলোই ১০-এর চেয়ে ছোট বা সমান মৌলিক সংখ্যা।
Exercism-এ সাইন আপ করুন, Nim ট্র্যাকের 70টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।
আমরা এরাটোস্থেনিসের চালনির বিভিন্ন পদ্ধতি নিয়ে আলোচনা করি: শুরুতে নেস্টেড লুপ ও লেজি ইভালুয়েশন, তারপর সেট, শেষে রিকার্শন।