summaryrefslogtreecommitdiff
path: root/demos
diff options
context:
space:
mode:
authorTorbjorn Granlund <tege@gmplib.org>2012-08-24 18:43:40 +0200
committerTorbjorn Granlund <tege@gmplib.org>2012-08-24 18:43:40 +0200
commitbcfc81433136d81d93de0d6309c577ad0e550212 (patch)
treea04949310f8fa8f4fd71c0eb99c4ec0a4aeb3ef4 /demos
parent560ae7f033edcb03013e5a3230fc4b9aef2b71be (diff)
downloadgmp-bcfc81433136d81d93de0d6309c577ad0e550212.tar.gz
Overhaul.
Diffstat (limited to 'demos')
-rw-r--r--demos/factorize.c21
1 files changed, 2 insertions, 19 deletions
diff --git a/demos/factorize.c b/demos/factorize.c
index 67cf0ccb3..cd5689c30 100644
--- a/demos/factorize.c
+++ b/demos/factorize.c
@@ -187,10 +187,6 @@ factor_using_pollard_rho (mpz_t n, unsigned long a, unsigned long p)
}
while (--k != 0);
- mpz_gcd (t1, P, n);
- if (mpz_cmp_ui (t1, 1) != 0)
- goto factor_found;
-
mpz_set (x1, x);
k = l;
l = 2 * l;
@@ -233,20 +229,12 @@ factor_using_pollard_rho (mpz_t n, unsigned long a, unsigned long p)
if (!mpz_probab_prime_p (t1, 25))
{
- do
- {
- mp_limb_t a_limb;
- mpn_random (&a_limb, (mp_size_t) 1);
- a = a_limb;
- }
- while (a == 0);
-
if (flag_verbose > 0)
{
printf ("[composite factor--restarting pollard-rho] ");
fflush (stdout);
}
- factor_using_pollard_rho (t1, a, p);
+ factor_using_pollard_rho (t1, a + 1, p);
}
else
{
@@ -277,12 +265,7 @@ factor (mpz_t t, unsigned long p)
if (mpz_sgn (t) == 0)
return;
- /* Set the trial division limit according the size of t. */
- division_limit = mpz_sizeinbase (t, 2);
- if (division_limit > 1000)
- division_limit = 1000 * 1000;
- else
- division_limit = division_limit * division_limit;
+ division_limit = 1500;
if (p != 0)
factor_using_division_2kp (t, division_limit / 10, p);