Stackoverflow 推广了这个数学 question在来自 stackexchange 数学网站的右侧 Pane 中。
我很想知道答案。原来问题是关于一个特定案例 (3!⋅5!⋅7!=n!)
并且答案也是针对这个特定案例的。
从程序员/编程的角度来看,我想知道解决问题最充分的算法是什么。
不过我们有两种情况。一种认为问题总有答案,另一种则没有。
在链接问题中输入为 3、5、7,输出为 10。
最佳答案
该算法相当简单:
- 对输入 a、b 和 c 进行排序,使 a <= b <= c
- c!可以从n分出来!
- 这使一个! *乙!等于 c+1 和 n 之间的数的乘积,包括在内
- 找到下一个素数 p > c。这个数字不能通过乘以 a! * b!, 因为 a 和 b 都严格小于 p, 因此它们的因子中不包含 p
- 尝试所有 c+1 和 p-1 之间的候选 n,包括在内
- 如果找不到答案,就没有解决方案
在 a=3、b=5 和 c=7 的情况下,您找到 7 以上的下一个质数,即 11,并尝试 7+1 和 11-1 之间的所有数字,包括在内(即 8、9、和 10) 作为 n 的候选者。
关于algorithm - 找到 n,它的阶乘是阶乘的乘积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32667055/