একটি আয়তক্ষেত্রের ক্ষেত্রফল দেওয়া থাকলে, দৈর্ঘ্য ও প্রস্থের মধ্যে পার্থক্য ন্যূনতম রাখতে পারি।
আয়তক্ষেত্রের ক্ষেত্রফল = দৈর্ঘ্য × প্রস্থ।
উদাহরণ
ইনপুট − ক্ষেত্রফল = 100
আউটপুট − ন্যূনতম পার্থক্যের সাথে আয়তক্ষেত্রের বাহু:
দৈর্ঘ্য = 10, প্রস্থ = 10
ব্যাখ্যা − ক্ষেত্রফল ১০০-এর বাহুগুলি: ২-৫০, ৪-২৫, ৫-২০, ১০-১০। ন্যূনতম পার্থক্য ১০-১০-এর মধ্যে (পার্থক্য = ০)। বর্গক্ষেত্র একটি আয়তক্ষেত্র যার সব বাহু সমান।
ইনপুট − ক্ষেত্রফল = 254
আউটপুট − ন্যূনতম পার্থক্যের সাথে আয়তক্ষেত্রের বাহু:
দৈর্ঘ্য = 127, প্রস্থ = ২
ব্যাখ্যা − ক্ষেত্রফল ২৫৪-এর জন্য একমাত্র সম্ভাব্য বাহু ১২৭ এবং ২।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
ক্ষেত্রফলের বর্গমূল বের করে সেখান থেকে ১ পর্যন্ত লুপ চালাতে হবে যাতে পার্থক্য ন্যূনতম থাকে।
ইনপুট হিসেবে পূর্ণসংখ্যা ক্ষেত্রফল নিন।
rectangleSides(int area1)ফাংশন ক্ষেত্রফল গ্রহণ করে ন্যূনতম পার্থক্যের বাহু প্রিন্ট করে।পূর্ণসংখ্যা
length,breadth,tmp1ঘোষণা করুন।tmp1 = ceil(sqrt(area1))সেট করুন।for (int i = tmp1; i > 0; i--)লুপ চালান।যদি
(area1 % i == 0)হয়, তবেlength = area1 / iএবংbreadth = iসেট করুন।breakদিয়ে লুপ থামান।বাহুগুলোর মান প্রিন্ট করুন।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
void rectangleSides(int area1){
int length, breadth;
int tmp1 = ceil(sqrt(area1));
for (int i = tmp1; i > 0; i--) {
if (area1 % i == 0) {
length = ceil(area1 / i);
breadth = i;
break;
}
}
cout << "Sides of Rectangle with minimum difference :" << endl;
cout << "Length = " << length << ", Breadth = " << breadth << endl;
}
int main(){
int Area = 140;
rectangleSides(Area);
return 0;
}
আউটপুট
উপরের কোড রান করলে নিচের আউটপুট পাওয়া যাবে:
Sides of Rectangle with minimum difference : Length = 14, Breadth = 10