【发布时间】:2010-09-06 14:26:12
【问题描述】:
计算一个数的最大质因数的最佳方法是什么?
我认为最有效的方法如下:
- 找到能整除的最小素数
- 检查除法结果是否为素数
- 如果不是,则查找下一个最低值
- 转到 2。
我的这个假设是基于更容易计算小的素因数。这是对的吗?我应该研究哪些其他方法?
编辑:我现在意识到,如果有两个以上的质数因子在起作用,我的方法是徒劳的,因为当结果是其他两个质数的乘积时,第 2 步会失败,因此需要递归算法。
再次编辑:现在我意识到这仍然有效,因为最后找到的素数必须是最高的,因此对第 2 步的非素数结果的任何进一步测试都会导致更小的素数.
【问题讨论】:
-
我的方法是:(1)将大的,可能的数字除以2; (2) 检查大数是否均分; (3) 如果是,检查除以 2 的数是否为素数。如果是,请将其退回。 (4) 否则,将除以 2 的数字减去 1,返回步骤 3。
-
1.找到任何可以明确划分的数字(对于 i = 2 到 int(sqr(num)))2.除以该数字(num = num/i)并重复直到没有发现在1.的区间3.num是最大因子 -
我们可以用小素数除,最后剩下的就是最大素数(我猜)
标签: algorithm math prime-factoring