চ্যালেঞ্জ
নীচের মৌলিক সংখ্যাগুলি সন্ধানের জন্য সুন্দরম চালনী প্রয়োগ করুনn
। একটি ইনপুট পূর্ণসংখ্যা নিন n
এবং নীচের মূল সংখ্যাগুলি আউটপুট দিন n
। আপনি ধরে নিতে পারেন যে n
সর্বদা এক মিলিয়নের চেয়ে কম বা সমান হবে।
চালনী
থেকে পূর্ণসংখ্যার একটি তালিকা দিয়ে শুরু করুন
1
থেকেn
।ফর্মের সমস্ত নম্বর সরিয়ে ফেলুন
i + j + 2ij
যেখানে:i
এবংj
কম হয়n
।j
সর্বদা বৃহত্তর বা সমানi
, যা এর চেয়ে বড় বা সমান1
।i + j + 2ij
এর চেয়ে কম বা সমানn
অবশিষ্ট সংখ্যাগুলি দ্বারা গুণিত করুন
2
, এবং যুক্ত করুন1
।
এটি সমস্ত মৌলিক সংখ্যা (কেবলমাত্র 2
আপনার আউটপুটে অন্তর্ভুক্ত করা উচিত) এর চেয়ে কম ফল দেবে 2n + 2
।
নীচে প্রাইমগুলি সন্ধান করতে চালনী ব্যবহার করা হচ্ছে তার একটি অ্যানিমেশন এখানে রয়েছে 202
।
আউটপুট
আপনার আউটপুট প্রতিটি প্রধান পূর্ণসংখ্যার ≤ n
(আরোহী ক্রমে) হওয়া উচিত যার পরে একটি নতুন লাইন থাকবে:
2
3
5
কোথায় n
আছে 5
।
উদাহরণ
> 10
2
3
5
7
> 30
2
3
5
7
11
13
17
19
23
29
ইনপুট দ্বারা চিহ্নিত করা হয় >
।
(i,j)
সাথে চেক করে i<=j
, তবে আমরা যদি এই প্রয়োজনীয়তা উপেক্ষা করি তবে ফলাফল পরিবর্তন হয় না। বাইটস বাঁচাতে আমরা কি তা করতে পারি?
i <= j
। এটি চালনী কীভাবে কাজ করে তার কেবলমাত্র একটি অংশ। সুতরাং হ্যাঁ, আপনি i <= j
আপনার কোডটি ছেড়ে দিতে পারেন । @ এক্সনোর
2n+1
) যা ফর্ম নয় 2(i + j + 2ij)+1
- আমরা সম্ভাব্য মৌলিক সরাসরি এই সম্পত্তি পরীক্ষা করতে পারেন অথবা আমাদের কোড আছে আছে কিছু সময়ে বার 2 প্লাস 1 করতে ?
n
পুরো বিষয়টি যা আছে তা নিয়ে আমি কিছুটা বিভ্রান্ত হয়ে পড়েছি । পদ্ধতির বিবরণে এটি বলে যে এটি সমস্ত প্রাইম তৈরি করে 2 * n + 2
। তবে ইনপুট / আউটপুট বিবরণে এটি বলে যে ইনপুটটি হ'ল n
এবং আউটপুট সমস্ত প্রাইম আপ n
। সুতরাং আমরা কি সমস্ত প্রাইম আপ তৈরি করতে পদ্ধতিটি প্রয়োগ করব 2 * n + 2
এবং তারপরে n
আউটপুটটির চেয়ে বড়গুলি ফেলে দেব? অথবা n
আমাদের ইনপুট থেকে পদ্ধতি বিবরণে গণনা করা উচিত n
?
n=30
আউটপুটে 29 অনুপস্থিত।