检查一个数字是否可以在 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