algorithm - 找到 n,它的阶乘是阶乘的乘积

标签 algorithm math factorial

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/

相关文章:

javascript - 阶乘的最低有效非零数字

r - igraph --- 找到最短路径,包括转弯时的重量

r - 通过扰乱现有概率分布来生成离散随机概率分布

algorithm - 找到幸运与否的数字

math - 大O困惑:log2(N)vs log3(N)

c - C 中的阶乘程序在 20 之后是错误的

haskell - 无法构造无限类型 - 实现尾递归阶乘计算器

java - 查找具有唯一 K 个字符的最长子字符串的代码不适用于所有输入

math - 计算到路径的距离

python - 为什么 Python 的无穷大哈希有 π 的数字?