【问题标题】:How do I calculate a number if its number of factors (N) and number of prime factors (K) are given?如果给定因子数(N)和素因子数(K),我如何计算一个数字?
【发布时间】:2020-07-18 05:10:29
【问题描述】:

如果给定因子数 (N) 和素因子数 (K),我如何计算一个数?

示例:如果给出了N = 4K = 2,那么唯一可能的值将是6

解释:以上是 6 有 4 个因数(1,2,3,6),其中 2 个是素数(2,3)。所以唯一可能的值是 6。

【问题讨论】:

  • 请注意,对于 N = 4 和 K = 2,您还可以得到 10 -> 1、2、5、10。您需要唯一性还是只找到一个有效数字?
  • 欢迎来到 Stack Overflow。我建议您尝试为上述问题编写代码,并在遇到问题时发布您的代码以及您遇到的问题。阅读此link,了解如何发布问题。
  • 可能有很多这样的数字,包括没有。
  • 我投票结束这个问题,因为它与编程无关。
  • 我怀疑 OP 正在尝试解决 this problem 并在这里提出了错误的问题(如何找到具有 N 因子和 K 素因子的数字),而他们实际试图解决的问题是这样的一个数字存在,而不是产生这样一个数字(虽然产生一个,如果有的话,是相当简单的)。

标签: math numbers primes prime-factoring number-theory


【解决方案1】:

任何整数都可以表示为素数的乘积:

I = 2^p1 * 3^p2 * 5^p3 * 7^p4 * 11^p5 * ....

其所有因子的总数为

N = (p1+1) * (p2+1) * (p3+1) * ....
     \__________________________/ 
            K multipliers

因此,您需要将值 N 表示为大于 1 的 K 因子的乘积。

将 N 分解为素数,将这些素数分成 K 组。

假设您有 N=420 和 5 个素因数:2 2 3 5 7K=3。建立群组2*2, 3*5, 7(或任何其他组合),因此建立I的相应权力是3,14,6

例如,具有N = 12K=3,您可以表示12 = 2 * 2 * 3,并使用任意两个素数与第三个素数的平方的乘积作为数字I。最小的这样的值是60 (2^2 * 3 * 5),下一个是90 (2 * 3^2 * 5)等等(例如3 * 7 * 11^2也是一种解决方案)。

对于N = 12K=2 的情况,您可以将12 = 3 * 4 表示为p^2*q^312 = 2 * 6 并获得p*q^5 的结果,其中p,q 是不同的素数

对于N = 12K=4 的情况,您不能将12 表示为大于1 的四个整数的乘积,因此无法使用这些参数产生结果

【讨论】:

  • 为了完整起见,答案中可能还包括 N=12 、 K=2 (和 K=4)个案例?
  • @Alex Ed 代码完全错误。将 N 分解为素数,将这些素数分成 K 组。
  • 现在这是一个正确的答案! :)
  • @MBo 我已经分解了 N,但是,如何对它们进行分组。可以举个例子吗
  • 假设您有 5 个 N-420 的素因子:2 2 3 5 7 和 K=3。建立群组2*2, 3*5, 7(或任何其他组合),因此建立I 的相应权力为3,14,6
猜你喜欢
  • 1970-01-01
  • 2016-07-31
  • 1970-01-01
  • 1970-01-01
  • 2015-02-25
  • 2011-05-27
  • 1970-01-01
  • 2017-04-13
相关资源
最近更新 更多