【发布时间】:2014-12-20 04:53:43
【问题描述】:
给定一个数字 K,它是两个不同数字 (A,B) 的乘积,求平方除以 K .
例如:K = 54 (6*9) 。这两个数字都可用,即 6 和 9。
我的方法相当简单或微不足道。
- 取两者中最小的一个(在这种情况下为 6)。让我们说 A
- 将数字平方并除以 K,如果它是完美的除法,那就是数字。
- 否则 A = A-1,直到 A =1。
对于给定的示例,3*3 = 9 除以 K,因此 3 就是答案。
寻找更好的算法,而不是琐碎的解决方案。
注意:测试用例有 1000 个,因此需要最好的方法。
【问题讨论】:
-
是 k = 3 还是什么?您可以使用 for 语句来完成并完成函数并检查结果是否为十进制。
-
@Bot K = 54 这是 A =6 和 B =9 的乘积,该问题仅寻求正整数。我已经在运行一个 for 循环,更具体地说:
-
一般来说,找到数字的因数并不容易,我会尝试从 4 到 sqrt(k) 的每个平方数,应该很快
-
所以你可以测试 6 ^2 和 9^2 除以 54。然后找到可以除以 54 得到整数的最大 num。
-
如果给定的数字是 1 * 54,你的算法会做什么?