如何在范围内得到数字因子?

时间:2012-10-02 17:52:12

标签: factorization

一般来说,我会进行素数分解并获得所有素数因子,并进行排列和组合以找出所有因子。

例如:1824是我试图考虑的数字。现在我需要在数字300中没有1824的因子。

有诀窍吗?

2 个答案:

答案 0 :(得分:0)

作为一种强力解决方案,您无需对此数字进行因式分解。您只需检查范围内的所有数字。

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

答案 1 :(得分:0)

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