একটি সংখ্যার ঘাত বলতে সেই সংখ্যাকে নিজের সাথে কতবার গুণ করা হয়েছে সেটি বোঝায়। এটিকে এক্সপোনেন্ট বা ইন্ডেক্সও বলা হয়।
সাধারণ নিয়ম
- যেকোনো সংখ্যার ০ ঘাত = ১
- যেকোনো সংখ্যার ১ ঘাত = সেই সংখ্যাটি
- নেগেটিভ ঘাত = বিপরীত গুণনफल, যেমন a⁻³ = 1/a³
সমস্যা
দুটি সংখ্যা N এবং a দেওয়া আছে। N কি a-এর কোনো ঘাতের সমান কিনা তা যাচাই করতে হবে।
উদাহরণ
ইনপুট: N = 64, a = 2
আউটপুট: হ্যাঁ (কারণ 2⁶ = 64)
সমাধান: রিকার্শিভ বিভাজন
N কে a দিয়ে বারবার ভাগ করুন। যদি শেষে ১ পাওয়া যায় এবং সব সময় পুরো ভাগ হয়, তবে N হলো a-এর ঘাত।
C++ প্রোগ্রাম
#include <iostream>
using namespace std;
bool isAPowerNumber(int x, long int y) {
if (x == 1) return (y == 1);
long int power = 1;
while (power < y)
power *= x;
return (power == y);
}
int main() {
int N = 625, a = 5;
if (isAPowerNumber(a, N))
cout << N << " " << a << "-এর ঘাত";
else
cout << N << " " << a << "-এর ঘাত নয়";
return 0;
}
আউটপুট
625 5-এর ঘাত