【发布时间】:2011-04-08 21:12:10
【问题描述】:
遇到了这个面试问题。给定两个 n 位质数,将第一个质数转换为第二个质数,一次改变一个数字。中间数也必须是素数。这需要以最少的步骤完成(检查素数和更改数字被视为步骤)
例如将 1033 转换为 8179 (1033->1733->3733->.......->8179)
【问题讨论】:
-
是否保证解决方案存在?换句话说,是否选择了两个 n 位素数,以便始终存在形成解的中间素数?
-
这类问题让我觉得面试官只是想展示他们有多聪明,而不是试图从候选人那里得到有用的东西。
-
@NullUserException 面试官告诉我她可以通过 8 个步骤将 1033 转换为 8179
-
看到这个 ..spoj.pl/problems/PPATH 你可以搜索资源链接找到解决方案
-
@Manas:“分 8 步将 1033 转换为 8179”。她有没有说这些步骤中有多少是数字变化,有多少是素数检查?问题是数字变化是解决方案的属性,而素数检查是找到该解决方案的算法的属性。我看不出这两者是如何共同测量的。