আমরা সবাই জানি যে কোনো সংখ্যার বর্গ নয় এমন সংখ্যাগুলো যেমন ২, ৩, ৫, ৭, ৮, ইত্যাদি। এতে Nth নন-স্কোয়ার সংখ্যা থাকে, এবং সকল সংখ্যা জানা অসম্ভব। এই আর্টিকেলে আমরা স্কোয়ার-ফ্রি বা নন-স্কোয়ার সংখ্যা সম্পর্কে সবকিছু এবং C++-এ Nth নন-স্কোয়ার সংখ্যা বের করার উপায় ব্যাখ্যা করব।
Nth নন-স্কোয়ার সংখ্যা
একটি সংখ্যা পারফেক্ট স্কোয়ার বলা হয় যদি সেটি কোনো পূর্ণসংখ্যার বর্গ হয়। কিছু পারফেক্ট স্কোয়ার সংখ্যার উদাহরণ −
১ হল ১-এর বর্গ ৪ হল ২-এর বর্গ ৯ হল ৩-এর বর্গ ১৬ হল ৪-এর বর্গ ২৫ হল ৫-এর বর্গ
একটি সংখ্যা নন-স্কোয়ার বলা হয় যদি সেটি কোনো পূর্ণসংখ্যার বর্গ নয়। উদাহরণস্বরূপ, প্রথম ১৫টি নন-স্কোয়ার সংখ্যা −
২, ৩, ৫, ৬, ৭, ৮, ১০, ১১, ১২, ১৩, ১৪, ১৫, ১৭, ১৮, ১৯
Nth নন-স্কোয়ার সংখ্যা কীভাবে বের করবেন?
Nth নন-স্কোয়ার সংখ্যা বের করার উদাহরণ −
ইনপুট : ২ আউটপুট : ৩ ব্যাখ্যা : ২য় নন-স্কোয়ার সংখ্যা হল ৩ (২ după যা প্রথম নন-স্কোয়ার) ইনপুট : ৫ আউটপুট : ৭ ব্যাখ্যা : ৭ম নন-স্কোয়ার সংখ্যা হল ৭ (২, ৩, ৫, ৬ পরে যা প্রথম চারটি নন-স্কোয়ার)
উপরের উদাহরণ দেখে আমরা একটি সমাধান পেতে পারি: Nth নন-স্কোয়ার সংখ্যা বের করার জন্য nth সংখ্যা কাউন্ট শুরু করি এবং প্রতিটি পূর্ণসংখ্যা চেক করি পারফেক্ট স্কোয়ার কিনা এবং পারফেক্ট স্কোয়ার হলে কাউন্ট করি না, অর্থাৎ সংখ্যা পারফেক্ট স্কোয়ার না হলে কাউন্ট করি।
Nth নন-স্কোয়ার সংখ্যা বের করার C++ প্রোগ্রাম
আমরা Nth নন-স্কোয়ার সংখ্যা বের করার সম্পূর্ণ সিনট্যাক্স C++-এ বানিয়েছি।
উদাহরণ
#include <bits/stdc++.h> using namespace std; int main(){ int n; cin >> n; // ইউজার থেকে ইনপুট নেওয়া int i = 2; // ০ এবং ১ নিজেদের বর্গ তাই ২ থেকে হিসাব শুরু int cnt = 0; // কাউন্টার ভেরিয়েবল ঘোষণা while(cnt != n){ // লুপ থামবে যখন কাউন্টার n-এর সমান হবে int a = sqrt(i); if(i != a*a) cnt++; if(cnt != n) i++; } cout << i << "\n"; // nth নন-স্কোয়ার সংখ্যা প্রিন্ট }
আউটপুট
5
(যখন ৩ ইনপুট দিই, তখন ৫ আউটপুট পাই)
উপরোক্ত কোডের সংক্ষিপ্ত ব্যাখ্যা।
ধাপ ১ − ইউজার থেকে ইনপুট নেওয়া এবং কাউন্ট ০ সেট করা।
cin >> n; // ইউজার থেকে ইনপুট নেওয়া int i = 2; // ০ এবং ১ নিজেদের বর্গ তাই ২ থেকে হিসাব শুরু int cnt = 0; // কাউন্টার ভেরিয়েবল ঘোষণা;
ধাপ ২ − নন-স্কোয়ার সংখ্যা কাউন্ট করা এবং স্কোয়ার সংখ্যা স্কিপ করা।
while(cnt != n) // লুপ থামবে যখন কাউন্টার n-এর সমান হবে.{
int a = sqrt(i); // sqrt() ফাংশন দিয়ে বর্গমূল বের করা
if(i != a*a) // চেক করো সংখ্যা পারফেক্ট স্কোয়ার কিনা
cnt++; // নন-পারফেক্ট পাওয়া গেলে কাউন্ট বাড়াও
if(cnt != n) i++; }
ধাপ ৩ − Nth স্কোয়ার সংখ্যা প্রিন্ট করা।
cout << i << "\n"; // nth নন-স্কোয়ার সংখ্যা প্রিন্ট
উপসংহার
এই আর্টিকেলে আমরা নন-স্কোয়ার সংখ্যা সম্পর্কে ব্যাখ্যা করেছি এবং C++-এ Nth নন-স্কোয়ার সংখ্যা বের করার উপায় দেখিয়েছি। C++ ছাড়াও এই প্রোগ্রাম Java, Python, C বা অন্য ভাষায়ও ব্যবহার করা যায়। আশা করি এই আর্টিকেলটি আপনার জন্য সহায়ক এবং তথ্যপূর্ণ হবে কারণ আমরা সবকিছু সম্ভাব্য সহজ ভাষায় ব্যাখ্যা করেছি।