【问题标题】:how to get the no of factors of a number within range?如何获得范围内数字的因子数?
【发布时间】:2012-09-23 14:50:10
【问题描述】:

通常我会进行素因数分解并获得所有素因数,然后我会进行排列和组合以找到所有因数。

例如:1824 是我要考虑的数字。现在我需要 300 中的 1824 的无因数。

有什么诀窍吗??

【问题讨论】:

  • 以您的示例为例:您希望找到因子的范围是多少:1 到 300?

标签: factorization


【解决方案1】:

作为蛮力解决方案,您不需要为此对数字进行素数分解。您可以简单地检查范围内的所有数字。

让您希望找到因子的数字范围为 [range_start, range_end]。 只需在循环中迭代这些数字,并为每个数字(例如 x)检查是否 (number % x == 0),如果是,则 x 是数字的一个因素。

【讨论】:

    【解决方案2】:

    一个技巧是不要搜索超过您要搜索因子的数字的平方根的数字。例如,要从 2-300 中查找因子,您只需要从 2-ceil(sqrt(1824)) 中搜索,即 2-43。找到 2-43 范围内的数字后,将其除以 1824 以检查可能高于 43 的其他因素。

    【讨论】:

      猜你喜欢
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-26
      • 1970-01-01
      相关资源
      最近更新 更多