return mp_finish_up_in_single (mp_factors, n, 0);
}
-/* Return some or all factors of T, where B^2 / 2 <= T.
+/* Return some or all factors of T.
Divide T by the factors found. */
static struct mp_factors
mp_factor_using_division (mpz_t t)
while (gn == 1 && gp[0] == 1);
mpz_t g = MPZ_ROINIT_N (gp, gn);
+ mpz_t m = MPZ_ROINIT_N ((mp_limb_t *) mp, n), q;
+ mpz_init (q);
+ mpz_divexact (q, m, g);
+
if (!mp_finish_in_single (factors, g))
{
if (mp_prime_p (g))
mp_factor_using_pollard_rho (factors, gp, gn, a + 1);
}
- mpz_t m = MPZ_ROINIT_N ((mp_limb_t *) mp, n), q;
- mpz_init (q);
- mpz_divexact (q, m, g);
-
if (!mp_finish_in_single (factors, q))
{
if (mp_prime_p (q))
return factor_up (factors, t1, t0, 0);
}
-/* Return the prime factors of T, where B^2 / 2 <= T. */
+/* Return the prime factors of T. */
static struct mp_factors
mp_factor (mpz_t t)
{