Integer factorization using PARI¶
AUTHORS:
Jeroen Demeyer (2015)
- sage.rings.factorint_pari.factor_using_pari(n, int_=False, debug_level=0, proof=None)[source]¶
Factor this integer using PARI.
This function returns a list of pairs, not a
Factorization
object. The first element of each pair is the factor, of typeInteger
ifint_
isFalse
orint
otherwise, the second element is the positive exponent, of typeint
.INPUT:
int_
– (default:False
), whether the factors are of typeint
instead ofInteger
debug_level
– (default: 0), debug level of the call to PARIproof
– (default:None
), whether the factors are required to be proven prime; ifNone
, the global default is used
OUTPUT: list of pairs
EXAMPLES:
sage: factor(-2**72 + 3, algorithm='pari') # indirect doctest -1 * 83 * 131 * 294971519 * 1472414939
>>> from sage.all import * >>> factor(-Integer(2)**Integer(72) + Integer(3), algorithm='pari') # indirect doctest -1 * 83 * 131 * 294971519 * 1472414939
factor(-2**72 + 3, algorithm='pari') # indirect doctest
Check that PARI’s debug level is properly reset (Issue #18792):
sage: alarm(0.5); factor(2^1000 - 1, verbose=5) Traceback (most recent call last): ... AlarmInterrupt sage: pari.get_debug_level() 0
>>> from sage.all import * >>> alarm(RealNumber('0.5')); factor(Integer(2)**Integer(1000) - Integer(1), verbose=Integer(5)) Traceback (most recent call last): ... AlarmInterrupt >>> pari.get_debug_level() 0
alarm(0.5); factor(2^1000 - 1, verbose=5) pari.get_debug_level()