Spaces:
Sleeping
Sleeping
from sympy.assumptions import Predicate | |
from sympy.multipledispatch import Dispatcher | |
class PrimePredicate(Predicate): | |
""" | |
Prime number predicate. | |
Explanation | |
=========== | |
``ask(Q.prime(x))`` is true iff ``x`` is a natural number greater | |
than 1 that has no positive divisors other than ``1`` and the | |
number itself. | |
Examples | |
======== | |
>>> from sympy import Q, ask | |
>>> ask(Q.prime(0)) | |
False | |
>>> ask(Q.prime(1)) | |
False | |
>>> ask(Q.prime(2)) | |
True | |
>>> ask(Q.prime(20)) | |
False | |
>>> ask(Q.prime(-3)) | |
False | |
""" | |
name = 'prime' | |
handler = Dispatcher( | |
"PrimeHandler", | |
doc=("Handler for key 'prime'. Test that an expression represents a prime" | |
" number. When the expression is an exact number, the result (when True)" | |
" is subject to the limitations of isprime() which is used to return the " | |
"result.") | |
) | |
class CompositePredicate(Predicate): | |
""" | |
Composite number predicate. | |
Explanation | |
=========== | |
``ask(Q.composite(x))`` is true iff ``x`` is a positive integer and has | |
at least one positive divisor other than ``1`` and the number itself. | |
Examples | |
======== | |
>>> from sympy import Q, ask | |
>>> ask(Q.composite(0)) | |
False | |
>>> ask(Q.composite(1)) | |
False | |
>>> ask(Q.composite(2)) | |
False | |
>>> ask(Q.composite(20)) | |
True | |
""" | |
name = 'composite' | |
handler = Dispatcher("CompositeHandler", doc="Handler for key 'composite'.") | |
class EvenPredicate(Predicate): | |
""" | |
Even number predicate. | |
Explanation | |
=========== | |
``ask(Q.even(x))`` is true iff ``x`` belongs to the set of even | |
integers. | |
Examples | |
======== | |
>>> from sympy import Q, ask, pi | |
>>> ask(Q.even(0)) | |
True | |
>>> ask(Q.even(2)) | |
True | |
>>> ask(Q.even(3)) | |
False | |
>>> ask(Q.even(pi)) | |
False | |
""" | |
name = 'even' | |
handler = Dispatcher("EvenHandler", doc="Handler for key 'even'.") | |
class OddPredicate(Predicate): | |
""" | |
Odd number predicate. | |
Explanation | |
=========== | |
``ask(Q.odd(x))`` is true iff ``x`` belongs to the set of odd numbers. | |
Examples | |
======== | |
>>> from sympy import Q, ask, pi | |
>>> ask(Q.odd(0)) | |
False | |
>>> ask(Q.odd(2)) | |
False | |
>>> ask(Q.odd(3)) | |
True | |
>>> ask(Q.odd(pi)) | |
False | |
""" | |
name = 'odd' | |
handler = Dispatcher( | |
"OddHandler", | |
doc=("Handler for key 'odd'. Test that an expression represents an odd" | |
" number.") | |
) | |