এখানে আমরা একটি প্রোগ্রাম দেখব, যদি একটি সংখ্যা দেওয়া হয়, আরেকটি মান k দেওয়া হয়, আমাদের পরীক্ষা করতে হবে যে সংখ্যাটি k-এর শক্তি কিনা। কিন্তু আমাদের এই সমস্যা সমাধানের জন্য বেস পরিবর্তন পদ্ধতি সম্পাদন করতে হবে। ধরুন একটি সংখ্যা 27, এবং k =3। তারপর ভিত্তি পরিবর্তন পদ্ধতিতে, 27 হবে 10003। এখানে বেস পরিবর্তন করার পরে যদি শুধুমাত্র একটি সংখ্যা 1 হয় এবং অন্যগুলি 0 হয়, তাহলে সংখ্যাটি k এর শক্তি। .
এই সমস্যা সমাধানের জন্য, আমরা এই পদক্ষেপগুলি অনুসরণ করব৷
পদক্ষেপ −
- পতাকা সংজ্ঞায়িত করুন :=মিথ্যা
- যখন সংখ্যা> 0, ধাপ 3 থেকে 6 পুনরাবৃত্তি করুন
- ডিজিট খুঁজুন :=সংখ্যা মোড k
- যদি অঙ্ক> 1 হয়, তাহলে মিথ্যা ফেরত দিন
- অন্যথায় যখন সংখ্যা 1 হয়, তখন পতাকাটি সত্য হলে, মিথ্যা ফেরত দিন, অন্যথায় পতাকা:=সত্য।
- সংখ্যা সেট করুন :=সংখ্যা / কে।
- সত্যে ফিরে আসুন
উদাহরণ
#include <iostream>
#include <cmath>
using namespace std;
bool isPowerOfK(int num, int k) {
bool flag = false;
while (num > 0) {
int digit = num % k; //get current digit in base k
if (digit > 1) //if the digit is not 0 or 1, then it is not power of k
return false;
if (digit == 1) {
if (flag)
return false;
flag = true;
}
num /= k;
}
return true;
}
int main() {
int number = 27, K = 3;
if(isPowerOfK(number, K)){
cout << number << " is power of " << K;
} else {
cout << number << " is not power of " << K;
}
} আউটপুট
27 is power of 3