Computer >> Máy Tính >  >> Lập trình >> C ++

Kiểm tra xem một số có thể được biểu diễn dưới dạng a ^ b trong C ++ hay không

Ở đây chúng ta sẽ kiểm tra xem chúng ta có thể biểu diễn một số như ab hay không. Giả sử có số 125. Số này có thể được biểu thị là 53. Một số khác 91 không thể được biểu diễn dưới dạng lũy ​​thừa của một số giá trị số nguyên.

Thuật toán

isRepresentPower(num):
Begin
   if num = 1, then return true
   for i := 2, i2 <= num, increase i by 1, do
      val := log(a)/log(i)
      if val – int(val) < 0.0000000001, then return true
   done
   return false
End

Ví dụ

#include<iostream>
#include<cmath>
using namespace std;
bool isRepresentPower(int num) {
   if (num == 1)
   return true;
   for (int i = 2; i * i <= num; i++) {
      double val = log(num) / log(i);
   if ((val - (int)val) < 0.00000001)
      return true;
   }
   return false;
}
int main() {
   int n = 125;
   cout << (isRepresentPower(n) ? "Can be represented" : "Cannot be represented");
}

Đầu ra

Can be represented