§
    OŠtjì  ã                   ó¤  — d Z ddlmZmZ ddlmZmZmZmZm	Z	m
Z
mZ ddlmZmZmZmZmZmZmZmZ ddlmZmZmZ ddlmZ ddlmZ dd	lmZmZm Z m!Z! d
„ Z" ej#        e¦  «        d„ ¦   «         Z$ ej#        e¦  «        d„ ¦   «         Z$ ej#        e	¦  «        d„ ¦   «         Z$ ej#        e
¦  «        d„ ¦   «         Z$ ej#        e¦  «        d„ ¦   «         Z$ ej%        eeee¦  «        d„ ¦   «         Z$ ej#        e¦  «        d„ ¦   «         Z$ ej#        e¦  «        d„ ¦   «         Z$ ej#        e¦  «        d„ ¦   «         Z$ ej#        e¦  «        d„ ¦   «         Z$ ej#        e¦  «        d„ ¦   «         Z$d„ Z& e j#        e¦  «        d„ ¦   «         Z$ e j#        e¦  «        d„ ¦   «         Z$ e j#        e	¦  «        d„ ¦   «         Z$ e j#        e¦  «        d„ ¦   «         Z$ e j#        e
¦  «        d„ ¦   «         Z$ e j#        e¦  «        d„ ¦   «         Z$ e j%        eeee¦  «        d„ ¦   «         Z$ e j#        e¦  «        d„ ¦   «         Z$ e j#        e¦  «        d„ ¦   «         Z$ e j#        e¦  «        d „ ¦   «         Z$ e j#        e¦  «        d!„ ¦   «         Z$ e j#        e¦  «        d"„ ¦   «         Z$ e!j#        e¦  «        d#„ ¦   «         Z$ e!j#        e¦  «        d$„ ¦   «         Z$d%S )&zD
Handlers for keys related to number theory: prime, even, odd, etc.
é    )ÚQÚask)ÚAddÚBasicÚExprÚFloatÚMulÚPowÚS)ÚImaginaryUnitÚInfinityÚIntegerÚNaNÚNegativeInfinityÚNumberSymbolÚRationalÚ
int_valued)ÚAbsÚimÚre©Úisprime)ÚMDNotImplementedErroré   )ÚPrimePredicateÚCompositePredicateÚEvenPredicateÚOddPredicatec                 ó  — |                       t          ¦  «         }	 t          |                      ¦   «         ¦  «        }| |z
                       d¦  «        du rt
          ‚n# t
          $ r Y dS w xY w|rt          |¦  «        S d S )Nr   F)Úatomsr   ÚintÚroundÚequalsÚ	TypeErrorr   )ÚexprÚassumptionsÚexactÚis       ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/assumptions/handlers/ntheory.pyÚ_PrimePredicate_numberr*      s—   € à—
’
�5Ñ!Ô!Ð!€EðÝ�—
’
‘”ÑÔˆØ�1‰H×Ò˜QÑÔ 5Ð(Ð(ÝˆOð )øåð ð ð Øˆuˆuðøøøàð Ý�q‰zŒzÐðð s   �AA  Á 
A.Á-A.c                 ó&   — | j         }|€t          ‚|S ©N)Úis_primer   ©r%   r&   Úrets      r)   Ú_r0   "   s   € à
Œ-€CØ
€{Ý#Ð#Ø€Jó    c                 ó4   — | j         rt          | |¦  «        S d S r,   )Ú	is_numberr*   ©r%   r&   s     r)   r0   r0   )   s&   € à„~ð 9Ý% d¨KÑ8Ô8Ð8ð9ð 9r1   c                 óÈ   — | j         rt          | |¦  «        S | j        D ]'}t          t	          j        |¦  «        |¦  «        s d S Œ(| j        D ]}|j         r
|j        r dS Œd S ©NF)r3   r*   Úargsr   r   ÚintegerÚis_composite)r%   r&   Úargs      r)   r0   r0   .   sŠ   € à„~ð 9Ý% d¨KÑ8Ô8Ð8ØŒyð ð ˆÝ•1”9˜S‘>”> ;Ñ/Ô/ð 	Ø�4�4ð	àŒyð ð ˆØŒ=ð 	˜SÔ-ð 	Ø�5�5øðð r1   c                 ó¦  — | j         rt          | |¦  «        S t          t          j        | j        ¦  «        |¦  «        rŒt          t          j        | j        ¦  «        |¦  «        rgt          t          j        | j        ¦  «        |¦  «        }|du rdS t          t          j        | j        d¦  «        |¦  «        }|du rdS |du r
|du rdS dS dS dS dS )z(
    Integer**Integer     -> !Prime
    Fé   TN)	r3   r*   r   r   r8   ÚexpÚbaseÚprimeÚeq)r%   r&   Ú
prime_baseÚ
is_exp_ones       r)   r0   r0   9   sî   € ð
 „~ð 9Ý% d¨KÑ8Ô8Ð8Ý
�1Œ9�T”XÑÔ Ñ,Ô,ð 	Ý•”	˜$œ)Ñ$Ô$ kÑ2Ô2ð	å�œ ¤Ñ+Ô+¨[Ñ9Ô9ˆ
Ø˜ÐÐØ�5Ý�œ˜dœh¨Ñ*Ô*¨KÑ8Ô8ˆ
Ø˜ÐÐØ�5Ø˜ÐÐ *°Ð"4Ð"4Ø�4ð	ð 	ð 	ð 	ð ÐÐ"4Ð"4r1   c                 ó    — t          | ¦  «        S r,   r   r4   s     r)   r0   r0   K   s   € å�4‰=Œ=Ðr1   c                 ó   — dS r6   © r4   s     r)   r0   r0   O   ó   € àˆ5r1   c                 ó"   — t          | |¦  «        S r,   ©r*   r4   s     r)   r0   r0   S   ó   € å! $¨Ñ4Ô4Ð4r1   c                 ó"   — t          | |¦  «        S r,   rH   r4   s     r)   r0   r0   W   rI   r1   c                 ó   — d S r,   rE   r4   s     r)   r0   r0   [   ó   € àˆ4r1   c                 ó&   — | j         }|€t          ‚|S r,   )r9   r   r.   s      r)   r0   r0   b   s   € à
Ô
€CØ
€{Ý#Ð#Ø€Jr1   c                 óB  — t          t          j        | ¦  «        |¦  «        }|rzt          t          j        | ¦  «        |¦  «        }|rTt          t          j        | ¦  «        |¦  «        }|€d S t          t          j        | d¦  «        |¦  «        }|rdS |€d S | S |S |S )Nr<   F)r   r   Úpositiver8   r?   r@   )r%   r&   Ú	_positiveÚ_integerÚ_primeÚ_is_ones         r)   r0   r0   i   s¨   € å•A”J˜tÑ$Ô$ kÑ2Ô2€IØð Ý•q”y ‘”¨Ñ4Ô4ˆØð 	Ý�œ ™œ¨Ñ4Ô4ˆFØˆ~Ø�õ �!œ$˜t Q™-œ-¨Ñ5Ô5ˆGØð Ø�uØˆØ�tØ�:ÐàˆOàÐr1   c                 ó  — t          | t          t          f¦  «        rt          | ¦  «        rd S dS 	 t	          |                      ¦   «         ¦  «        }n# t          $ r Y dS w xY w| |z
                       d¦  «        sdS |dz  dk    S )NFr   r   )Ú
isinstanceÚfloatr   r   r!   r"   r$   r#   )r%   r&   r(   s      r)   Ú_EvenPredicate_numberrW   ‚   s�   € å�$�¥˜Ñ'Ô'ð Ý�dÑÔð 	Ø�4ØˆuðÝ�—
’
‘”ÑÔˆˆøÝð ð ð Øˆuˆuðøøøà�1‰H×Ò˜QÑÔð ØˆuØˆq‰5�AŠ:Ðs   ±!A Á
A!Á A!c                 ó&   — | j         }|€t          ‚|S r,   )Úis_evenr   r.   s      r)   r0   r0   �   s   € à
Œ,€CØ
€{Ý#Ð#Ø€Jr1   c                 ó4   — | j         rt          | |¦  «        S d S r,   )r3   rW   r4   s     r)   r0   r0   —   s&   € à„~ð 8Ý$ T¨;Ñ7Ô7Ð7ð8ð 8r1   c                 ó6  — | j         rt          | |¦  «        S d\  }}}}| j        D ]Ð}t          t	          j        |¦  «        |¦  «        r}t          t	          j        |¦  «        |¦  «        rd}n…t          t	          j        |¦  «        |¦  «        r|dz  }n]|s-|dk    r't          t	          j        ||z   ¦  «        |¦  «        rd}n-t          t	          j        |¦  «        |¦  «        r|r dS d}n dS |}ŒÑ|rdS |rdS |t          | j        ¦  «        k    rdS dS )zë
    Even * Integer    -> Even
    Even * Odd        -> Even
    Integer * Odd     -> ?
    Odd * Odd         -> Odd
    Even * Even       -> Even
    Integer * Integer -> Even if Integer + Integer = Odd
    otherwise         -> ?
    )Fr   Fr<   Tr<   FN)
r3   rW   r7   r   r   r8   ÚevenÚoddÚ
irrationalÚlen)r%   r&   r\   r]   r^   Úaccr:   s          r)   r0   r0   œ   sO  € ð „~ð 8Ý$ T¨;Ñ7Ô7Ð7Ø!3Ñ€Dˆ#ˆz˜3ØŒyð ð ˆå�qŒy˜‰~Œ~˜{Ñ+Ô+ð 	Ý•1”6˜#‘;”; Ñ,Ô,ð  Ø��Ý•Q”U˜3‘Z”Z Ñ-Ô-ð  Ø�q‘��Øð  ˜c Qšh˜hÝ•q”u˜S 3™YÑ'Ô'¨Ñ5Ô5ð  Ø�DøÝ•”˜cÑ"Ô" KÑ0Ô0ð 	ð ð Ø��ØˆJˆJàˆEˆEØˆˆàð 	Ø�5Øð 	Ø�4Ø•#�d”i‘.”.Ò Ð Ø�5ð !Ð r1   c                 óâ   — | j         rt          | |¦  «        S d}| j        D ]M}t          t	          j        |¦  «        |¦  «        rŒ%t          t	          j        |¦  «        |¦  «        r| }ŒK dS |S )zM
    Even + Odd  -> Odd
    Even + Even -> Even
    Odd  + Odd  -> Even

    TN)r3   rW   r7   r   r   r\   r]   )r%   r&   Ú_resultr:   s       r)   r0   r0   Å   s€   € ð „~ð 8Ý$ T¨;Ñ7Ô7Ð7Ø€GØŒyð ð ˆÝ�qŒv�c‰{Œ{˜KÑ(Ô(ð 	ØÝ•”�s‘”˜[Ñ)Ô)ð 	Ø!�kˆGˆGàˆEˆEàˆr1   c                 óÔ  — | j         rt          | |¦  «        S t          t          j        | j        ¦  «        |¦  «        r§t          t          j        | j        ¦  «        |¦  «        r't          t          j        | j        ¦  «        |¦  «        S t          t          j	        | j        ¦  «         t          j
        | j        ¦  «        z  |¦  «        rdS | j        t          j        u rdS d S d S r6   )r3   rW   r   r   r8   r=   rO   r\   r>   Únegativer]   r   ÚNegativeOner4   s     r)   r0   r0   Ú   sÑ   € à„~ð 8Ý$ T¨;Ñ7Ô7Ð7Ý
�1Œ9�T”XÑÔ Ñ,Ô,ð Ý�qŒz˜$œ(Ñ#Ô# [Ñ1Ô1ð 	Ý•q”v˜dœiÑ(Ô(¨+Ñ6Ô6Ð6Ý•!”*˜TœXÑ&Ô&Ð&­¬¨t¬yÑ)9Ô)9Ñ9¸;ÑGÔGð 	Ø�5ØŒY�!œ-Ð'Ð'Ø�5ðð ð
 (Ð'r1   c                 ó2   — t          | j        dz  ¦  «         S )Nr<   )ÚboolÚpr4   s     r)   r0   r0   æ   s   € å�D”F˜Q‘JÑÔÐÐr1   c                 ó   — dS r6   rE   r4   s     r)   r0   r0   ê   rF   r1   c                 ó"   — t          | |¦  «        S r,   )rW   r4   s     r)   r0   r0   î   s   € å   {Ñ3Ô3Ð3r1   c                 óº   — t          t          j        | j        d         ¦  «        |¦  «        r-t          t          j        | j        d         ¦  «        |¦  «        S d S ©Nr   ©r   r   Úrealr7   r\   r4   s     r)   r0   r0   ò   óN   € å
�1Œ6�$”)˜A”,ÑÔ Ñ-Ô-ð 6Ý•1”6˜$œ) Aœ,Ñ'Ô'¨Ñ5Ô5Ð5ð6ð 6r1   c                 óº   — t          t          j        | j        d         ¦  «        |¦  «        r-t          t          j        | j        d         ¦  «        |¦  «        S d S rl   rm   r4   s     r)   r0   r0   ÷   ro   r1   c                 ód   — t          t          j        | j        d         ¦  «        |¦  «        rdS d S )Nr   T)r   r   rn   r7   r4   s     r)   r0   r0   ü   s3   € å
�1Œ6�$”)˜A”,ÑÔ Ñ-Ô-ð Øˆtðð r1   c                 ó   — d S r,   rE   r4   s     r)   r0   r0     rL   r1   c                 ó&   — | j         }|€t          ‚|S r,   )Úis_oddr   r.   s      r)   r0   r0     s   € à
Œ+€CØ
€{Ý#Ð#Ø€Jr1   c                 ó    — t          t          j        | ¦  «        |¦  «        }|r)t          t          j        | ¦  «        |¦  «        }|€d S | S |S r,   )r   r   r8   r\   )r%   r&   rQ   Ú_evens       r)   r0   r0     sO   € å•1”9˜T‘?”? KÑ0Ô0€HØð Ý•A”F˜4‘L”L +Ñ.Ô.ˆØˆ=Ø�4ØˆyÐØ€Or1   N)'Ú__doc__Úsympy.assumptionsr   r   Ú
sympy.corer   r   r   r   r	   r
   r   Úsympy.core.numbersr   r   r   r   r   r   r   r   Úsympy.functionsr   r   r   Úsympy.ntheoryr   Úsympy.multipledispatchr   Úpredicates.ntheoryr   r   r   r   r*   Úregisterr0   Úregister_manyrW   rE   r1   r)   ú<module>r�      s}  ððð ð %Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;ð:ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø !Ð !Ð !Ð !Ð !Ð !à 8Ð 8Ð 8Ð 8Ð 8Ð 8ð!ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð
ð 
ð 
ð €Ô˜ÑÔðð ñ Ôðð €Ô˜ÑÔð9ð 9ñ  Ôð9ð €Ô˜ÑÔðð ñ Ôðð €Ô˜ÑÔðð ñ Ôðð" €Ô˜Ñ!Ô!ðð ñ "Ô!ðð €Ô˜h¨Ð2BÀMÑRÔRðð ñ SÔRðð €Ô˜ÑÔð5ð 5ñ  Ôð5ð €Ô˜Ñ&Ô&ð5ð 5ñ 'Ô&ð5ð €Ô˜ÑÔðð ñ Ôðð ÐÔ˜TÑ"Ô"ðð ñ #Ô"ðð ÐÔ˜UÑ#Ô#ðð ñ $Ô#ðð0ð ð ð €Ô˜ÑÔðð ñ Ôðð €Ô˜ÑÔð8ð 8ñ Ôð8ð €Ô˜ÑÔð&ð &ñ Ôð&ðP €Ô˜ÑÔðð ñ Ôðð( €Ô˜ÑÔð	ð 	ñ Ôð	ð €Ô˜Ñ Ô ð ð  ñ !Ô ð ð €Ô˜X xÐ1AÀ=ÑQÔQðð ñ RÔQðð €Ô˜Ñ%Ô%ð4ð 4ñ &Ô%ð4ð €Ô˜ÑÔð6ð 6ñ Ôð6ð €Ô˜ÑÔð6ð 6ñ Ôð6ð €Ô˜ÑÔðð ñ Ôðð €Ô˜ÑÔðð ñ Ôðð €Ô�tÑÔðð ñ Ôðð €Ô�uÑÔðð ñ Ôðð ð r1   