Re: Why does factorint() take 128ms for 1853 decimal digit prime, while isprime() takes 16:45min/2min cpu/real time?
Karim Belabas <[email protected]> Tue, 24 Feb 2026 14:46:06 +0100
| Newsgroups | gmane.comp.mathematics.pari.user |
|---|---|
| Message-ID | <[email protected]> |
* [email protected] [2026-02-24 13:55]: > On 2026-02-24 00:24, Aurel Page wrote: > > Dear Hermann, > > > > That is because by default, factor does not prove that the factors are > > prime. They are only guaranteed to be pseudoprimes. > > ... > > You can use default(factor_proven, 1) to change this behaviour. > > > > Best, > > Aurel > > > Thanks Aurel, > > while my previous questions were OK, my last question was not. > > default(factor_proven, 1) is discussed in 3.8.1 of doc: > https://pari.math.u-bordeaux.fr/pub/pari/manuals/2.17.2/users.pdf#page=177 > > But I should have learned about it myself easily with "??factorint". Maybe I'm missing something but this seems to be easy to find: 14:38) gp > ??factorint factorint(x,{flag = 0}): Factors the integer n into a product of pseudoprimes (see ispseudoprime), [...] the divisors are by default not proven primes if they are larger than 2^64, they only failed the BPSW compositeness test (see ispseudoprime). Use isprime on the result if you want to guarantee primality or set the factor_proven default to 1. [...] N.B. I don't recommend setting that default outside validating a specific computation (then unsetting it again). It may slow down gp considerably in ways which are hard to predict or mitigate for users. Cheers, K.B. -- Pr. Karim Belabas, U. Bordeaux Institut de Mathématiques de Bordeaux UMR 5251 - (+33) 05 40 00 29 77 http://www.math.u-bordeaux.fr/~kbelabas/