【发布时间】:2012-08-26 12:28:58
【问题描述】:
正如问题所说。我需要计算给定数字 x 的除数。但约束条件是除数必须至少有一位与给定数 x 相同。
说 10 的答案是 2。(1,10,2,5 是除数,但只有 1,10 与 10 共享相同的数字)
【问题讨论】:
-
@all 这不是家庭作业..这是编程门户网站上的编程问题.. 鉴于 x 可以大到 10^9.. 蛮力行不通..跨度>
-
听起来您希望我们为您做这件事。老实说,没有任何问题,只是列出要求。
-
@Algorithmist:然后写蛮力,问我们如何改进你的实现。
-
记录一下,我的 C# 蛮力会发现数字 9876543210 在 156568 毫秒(不到 3 分钟)内有 72 个除数满足这些要求。一个更好的数字可能会带来更好的测试……但其中没有所有可能的数字。
-
@CoreyOgburn - 傻。为什么要花 3 分钟做这样的事情?首先,考虑数字。 9955687758 = 2x3x31x53525203。然后列出唯一的除数是微不足道的,真正的毫秒工作,既要考虑它,又要找到除数。 {1、2、3、6、31、62、93、186、53525203、107050406、160575609、321151218、1659281293、3318562586、4977843879、9955687758}。测试数字是另一项工作,只需几分之一秒,而不是几分钟,这就是我所说的蛮力。
标签: java algorithm math numbers