【发布时间】:2017-09-04 22:03:50
【问题描述】:
我正在尝试确定数字“n”是否是完美幂。我创建了以下代码来解决这个问题。
var isPP = function(n) {
console.log(n);
for (let base = 2; base < n; base++) {
//Change of base formula used to change natural log to log base "base"
let exp = Math.log(n) / Math.log(base);
//If "exp" variable is integer, return array containing base and exponent
if (Math.pow(base,exp) === n) {
return [base,exp];
}
}
return null;
}
这会通过除一个随机测试之外的所有测试(例如:当 n = 14618 时,错误消息显示为“returned not null on non-perfect power 14618”)。当随机测试提供的“n”为 62383 时,也会出现相同的结果。
我不确定为什么除了最后一个测试之外,代码都通过了所有测试。会不会是数字对JS来说太大了?
【问题讨论】:
-
n=9 失败
标签: javascript math logarithm