检查数字是否可以用C ++表示为幂

在这里,我们将检查是否可以将数字表示为幂,例如b。假设存在数字125。这可以表示为5 3。另一个数字91不能表示为某个整数的幂。

算法

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

示例

#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");

}

输出结果

Can be represented

以上是 检查数字是否可以用C ++表示为幂 的全部内容, 来源链接: utcz.com/z/352470.html

回到顶部