检查一个数字是否可以在 Python 中表示为 a^b

假设我们有一个数字 n。我们必须检查我们是否可以像 a^b 一样表达它。

所以,如果输入像 125,那么输出将是 True,因为 125 = 5^3,所以 a = 5 和 b = 3

为了解决这个问题,我们将按照以下步骤操作 -

  • 如果 num 与 1 相同,则:

    • 返回真

  • 对于初始化 i := 2,当 i * i <= num 时,更新(将 i 增加 1),执行:

    • 返回真

    • 价值 := log(num)/log(i)

    • 如果 val - val 的整数部分接近 0,则:

  • 返回假

让我们看看以下实现以获得更好的理解 -

示例

#include<iostream>

#include<cmath>

using namespace std;

bool solve(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 << solve(n);

}

输入

125
输出结果
1

以上是 检查一个数字是否可以在 Python 中表示为 a^b 的全部内容, 来源链接: utcz.com/z/351678.html

回到顶部