质因子分解算法c语言prime,分解质因数的算法

满意答案

00e27ab806e4881f8254fe7ae8741834.png

fy7306

2013.04.20

00e27ab806e4881f8254fe7ae8741834.png

采纳率: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分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值