满意答案
fy7306
.04.20
采纳率:49%等级:12
已帮助:11721人
1.素数表,从小到大去试除,一直到当前质数的平方大于试除后剩下的数.
这样优化后的效率会比较高,至少在long int范围内.
正好刚写的:
for (kindp = 0, i = 0; prime[i] * prime[i] <= y; i ++)
if (y % prime[i] == 0)
{ pp[kindp] = prime[i];
ep[kindp] = 0;/*当前质因数的次数*/
while (y % prime[i] == 0)
{
y /= prime[i];
ep[kindp]++;
}
kindp++;
}
if (y != 1)/*处理最大的一个质数*/
{
kindp++;
ep[kindp]=1;
pp[kindp]=y;
}
下面的是更先进一点的方法,但是要求不高的时候用第一种比较好.
2.Pollard's rho method
3.Pollard's p - 1 method
4.Lenstra's elliptic curve factorization method
5.The quadratic sieve factorization method
28分享举报
如果觉得《质因子分解算法c语言prime 分解质因数的算法》对你有帮助,请点赞、收藏,并留下你的观点哦!