首页 > 代码库 > 09.怎么取一个完美次幂
09.怎么取一个完美次幂
一个完美的功率为正整数的分类:
在数学中,完美的电源是可被表示为另一个正整数的整数次幂的正整数。更正式地说,n是一个完美的功率,如果存在自然数m> 1,并且k> 1,使得米? = N。
你的任务是检查wheter一个给定的整数是一个完美的动力。如果它是一个完美的电源,返回一对m
和k
具有m ? = N作为证明。否则返回Nothing
,Nil
,null
,None
或者你的语言的等价物。
注:对于一个完美的动力,可能有几双。例如81 = 3^4 = 9^2
,所以(3,4)
和(9,2)
有效的解决方案。然而,测试照顾这一点,所以如果一个数字是一个完美的电源,返回任何一对证明了这一点。
例子
Test.describe("perfect powers", function(){
Test.it("should work for some examples",function(){
Test.assertSimilar(isPP(4), [2,2], "4 = 2^2");
Test.assertSimilar(isPP(9), [3,2], "9 = 3^2");
Test.assertEquals( isPP(5), null, "5 isn‘t a perfect number");
});
});
题目如上,以下是查看到的答案(本人未完成):
function isPP(n) {
for (var m = 2; m * m <= n; m++)
for (var k = 2; Math.pow(m, k) <= n; k++)
if (Math.pow(m, k) == n) return [m, k];
return null;
}
这位同学使用双重遍历的方式将数据从小到大拆分。先得到用户相乘的数值,这个数值的平方一定是小于N(要求的数值),然后在下一层的便利将幂数的范围确定,使用Math.pow(m,k)确定最大值,然后进行判断即可。
09.怎么取一个完美次幂
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。