Ë
    7^(h±"  ã                   óº   — d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZ d dlmZ d„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"y)é    )Úpermutations)Ú	bit_scan1ÚremoveÚ	bit_scan0Úis_fermat_prpÚis_euler_prpÚis_strong_prpÚgcdextÚ_lucas_sequenceÚis_fibonacci_prpÚis_lucas_prpÚis_selfridge_prpÚis_strong_lucas_prpÚis_strong_selfridge_prpÚis_bpsw_prpÚis_strong_bpsw_prp)Úraisesc                  ó8  — t        d«      �J ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d«      D ]+  } t        d| z  «      | k(  sJ ‚t        d| z  dz  «      | k(  rŒ+J ‚ t        d	«      D ]  } dd	z  d| z  z   }t        |«      | k(  rŒJ ‚ t        dd
z  «      d
k(  sJ ‚t        ddz  dz  «      dk(  sJ ‚t        dd«      D ]!  } d| z  }t        | «      t        |«      k(  rŒ!J ‚ y )Nr   é   éÿÿÿÿé   é   iùÿÿÿéd   iiz  iô  iAB i$. l   §>qKwl/Í-’:é
   )r   Úrange)ÚiÚnÚbigs      ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/external/tests/test_ntheory.pyÚtest_bit_scan1r       sV  € Ü�Q‹<ÐÐÐÜ�Q‹<˜1ÒÐÐÜ�R‹=˜AÒÐÐÜ�Q‹<˜1ÒÐÐÜ�Q‹<˜1ÒÐÐÜ�R‹=˜AÒÐÐÜ�3‹Zò 0ˆÜ˜˜a™Ó  AÒ%Ð%Ð%Ü˜!˜q™& EÑ)Ó*¨aÓ/Ð/Ð/ð0ô �3‹Zò !ˆØ�#‰X˜!˜q™&Ñ!ˆÜ˜‹|˜qÓ Ð Ð ð!ô �Q˜'‘\Ó" gÒ-Ð-Ð-Ü�a˜6‘k 5Ñ(Ó)¨VÒ3Ð3Ð3ä�1�b‹\ò 1ˆØ�1‰fˆÜ˜#˜‹¤)¨C£.Ó0Ð0Ð0ñ1ó    c                  ó~   — t        d«      �J ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚y )Nr   r   r   éþÿÿÿ)r   © r!   r   Útest_bit_scan0r%       sH   € Ü�R‹=Ð Ð Ð Ü�Q‹<˜1ÒÐÐÜ�Q‹<˜1ÒÐÐÜ�R‹=˜AÒÐÑr!   c                  óÌ   — t        t        d„ «       t        dd«      dk(  sJ ‚t        dd«      D ]3  } t        dd«      D ]"  }dD ]  }t        || |z  z  | «      ||fk(  rŒJ ‚ Œ$ Œ5 y )	Nc                  ó   — t        dd«      S )Nr   )r   r$   r!   r   ú<lambda>ztest_remove.<locals>.<lambda>(   s   € œv a¨›|€ r!   r   é   )r   r   r   r   iè  )r   é   ée   iñ  )r   Ú
ValueErrorr   r   )ÚfÚyÚzs      r   Útest_remover0   '   s{   € Ü
Œ:Ñ+Ô,Ü�!�Q‹<˜6Ò!Ð!Ð!Ü�1�b‹\ò 3ˆÜ�q˜$“ò 	3ˆAØ'ò 3�Ü˜a  1¡™f aÓ(¨Q°¨FÓ2Ð2Ð2ñ3ñ	3ñ3r!   c                  óø  — t        dd«      dk(  sJ ‚t        dd«      dk(  sJ ‚t        dd«      dk(  sJ ‚t        dd«      D ]ž  } t        | d«      t        |  d«      cxk(  rd	k(  sJ ‚ J ‚t        | d
«      t        |  d
«      cxk(  rdk(  sJ ‚ J ‚t        | | «      t        |  | «      cxk(  r	| ddfk(  sJ ‚ J ‚t        | |  «      t        |  |  «      cxk(  r
| dd
fk(  rŒ›J ‚ J ‚ t        dd«      D ]L  } t        d| «      t        d|  «      cxk(  rdk(  sJ ‚ J ‚t        d
| «      t        d
|  «      cxk(  rdk(  rŒIJ ‚ J ‚ t        g d¢d«      D ].  \  }}t        ||«      \  }}}|||z  ||z  z   cxk(  rdk(  rŒ+J ‚ J ‚ y )Nr   )r   r   r   r)   )r)   r   r   é   )r2   r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   )r   r   r   )é    r)   é   é1   é   )r
   r   r   )r   ÚaÚbÚgÚxr.   s         r   Útest_gcdextr;   0   s·  € Ü�!�Q‹<˜9Ò$Ð$Ð$Ü�!�Q‹<˜9Ò$Ð$Ð$Ü�!�Q‹<˜9Ò$Ð$Ð$ä�1�b‹\ò =ˆÜ�a˜‹|œv q b¨!›}Ô9°	Ò9Ð9Ñ9Ð9Ð9Ü�a˜‹}¤¨ r¨2£Ô<°*Ò<Ð<Ñ<Ð<Ð<Ü�a˜‹|œv q b¨!›}Ô9°°A°q°	Ò9Ð9Ñ9Ð9Ð9Ü�a˜!˜‹}¤¨ r¨A¨2£Ô<°1°a¸°*Ó<Ð<Ñ<Ð<Ð<ð	=ô �1�b‹\ò =ˆÜ�a˜‹|œv a¨!¨›}Ô9°	Ò9Ð9Ñ9Ð9Ð9Ü�b˜!‹}¤ r¨A¨2£Ô<°*Ó<Ð<Ñ<Ð<Ð<ð=ô Ò3°QÓ7ò #‰ˆˆ1Ü˜˜A“,‰ˆˆ1ˆaØ�A�a‘C˜!˜A™#‘IÔ" Ó"Ð"Ñ"Ð"Ð"ñ#r!   c                  ó8  — t        t        d„ «       t        t        d„ «       t        dd«      rJ ‚t        dd«      sJ ‚t        dd«      sJ ‚t        dd«      sJ ‚t        dd	«      sJ ‚g d
¢} | D ]  }t        |d«      rŒJ ‚ g d¢} | D ]  }t        |d«      rŒJ ‚ y )Nc                  ó   — t        dd«      S ©Nr   r   ©r   r$   r!   r   r(   z$test_is_fermat_prp.<locals>.<lambda>F   ó   € œ}¨Q°Ó3€ r!   c                  ó   — t        dd«      S ©Nr4   r   r?   r$   r!   r   r(   z$test_is_fermat_prp.<locals>.<lambda>G   ó   € œ}¨Q°Ó2€ r!   r   r)   r   r2   r6   éÿÿÿr4   )éU  é1  é…  éQ  ék  éÁ  éq  éÿ  é¡	  i�
  é  éÍ  éÁ  i  i  éI  )é   éU   é[   rE   i³  iÃ  rF   rG   é¿  rH   iß  i÷  rI   i-  iŸ  rJ   éc  rK   )r   r,   r   ©Úpseudorpimer   s     r   Útest_is_fermat_prprY   D   sº   € ä
Œ:Ñ3Ô4Ü
Œ:Ñ2Ô3ô ˜Q Ô"Ð"Ð"ô ˜˜AÔÐÐÜ˜˜AÔÐÐÜ˜˜QÔÐÐÜ˜ !Ô$Ð$Ð$òC€Kàò #ˆÜ˜Q Õ"Ð"Ð"ð#òC€Kàò #ˆÜ˜Q Õ"Ð"Ð"ñ#r!   c                  ó8  — t        t        d„ «       t        t        d„ «       t        dd«      rJ ‚t        dd«      sJ ‚t        dd«      sJ ‚t        dd«      sJ ‚t        dd	«      sJ ‚g d
¢} | D ]  }t        |d«      rŒJ ‚ g d¢} | D ]  }t        |d«      rŒJ ‚ y )Nc                  ó   — t        dd«      S r>   ©r   r$   r!   r   r(   z#test_is_euler_prp.<locals>.<lambda>a   s   € œ|¨A¨rÓ2€ r!   c                  ó   — t        dd«      S rB   r\   r$   r!   r   r(   z#test_is_euler_prp.<locals>.<lambda>b   s   € œ|¨A¨qÓ1€ r!   r   r)   r   r2   r6   rD   r4   )rF   rH   rJ   rK   rL   rM   rO   rP   rQ   éÉ  é�   i!!  éY)  i2  éá=  )éy   rU   rJ   rV   rN   éÑ  iÕ  éÑ   éÏ"  r`   és0  ia<  ra   é“@  é!I  )r   r,   r   rW   s     r   Útest_is_euler_prpri   _   sº   € ä
Œ:Ñ2Ô3Ü
Œ:Ñ1Ô2ô ˜A˜qÔ!Ð!Ð!ô ˜˜1ÔÐÐÜ˜˜1ÔÐÐÜ˜˜AÔÐÐÜ˜ Ô#Ð#Ð#ò@€Kàò "ˆÜ˜A˜qÕ!Ð!Ð!ð"òC€Kàò "ˆÜ˜A˜qÕ!Ð!Ð!ñ"r!   c                  ó8  — t        t        d„ «       t        t        d„ «       t        dd«      rJ ‚t        dd«      sJ ‚t        dd«      sJ ‚t        dd«      sJ ‚t        dd	«      sJ ‚g d
¢} | D ]  }t        |d«      rŒJ ‚ g d¢} | D ]  }t        |d«      rŒJ ‚ y )Nc                  ó   — t        dd«      S r>   ©r	   r$   r!   r   r(   z$test_is_strong_prp.<locals>.<lambda>|   r@   r!   c                  ó   — t        dd«      S rB   rl   r$   r!   r   r(   z$test_is_strong_prp.<locals>.<lambda>}   rC   r!   r   r)   r   r2   r6   rD   r4   )rL   rO   rP   rQ   r_   ra   i�r  i/§  iõ¿  i™Í  iÿ  i©# iÅ: )rb   rU   rV   rc   rd   re   r`   rf   rg   rh   i‘K  iá[  i…{  iÿ¬  i]¸  )r   r,   r	   rW   s     r   Útest_is_strong_prprn   z   s¹   € ä
Œ:Ñ3Ô4Ü
Œ:Ñ2Ô3ô ˜Q Ô"Ð"Ð"ô ˜˜AÔÐÐÜ˜˜AÔÐÐÜ˜˜QÔÐÐÜ˜ !Ô$Ð$Ð$ò=€Kàò #ˆÜ˜Q Õ"Ð"Ð"ð#òD€Kàò #ˆÜ˜Q Õ"Ð"Ð"ñ#r!   c            
      ób  — d„ } d„ }d}t        dd«      D ]˜  }t        dd«      D ]‡  }|dz  d|z  z
  }|dk(  rŒ | |||«      } ||||«      }t        d	d
d«      D ]P  }t        |«      D ]@  }	t        ||||	«      \  }
}}|
||	   |z  k(  sJ ‚|||	   |z  k(  sJ ‚t        ||	|«      |k(  rŒ@J ‚ ŒR Œ‰ Œš y )Nc                 ór   — dg|z  }d|d<   t        d|«      D ]  }| ||dz
     z  |||dz
     z  z
  ||<   Œ |S )Nr   r   r   ©r   ©ÚPÚQÚlengthÚarrayÚks        r   Úlucas_uz$test_lucas_sequence.<locals>.lucas_u–   sY   € Ø��f‘ˆØˆˆa‰Ü�q˜&Ó!ò 	;ˆAØ˜5  Q¡™<Ñ'¨!¨e°A¸±E©lÑ*:Ñ:ˆE�!ŠHð	;àˆr!   c                 ó|   — dg|z  }d|d<   | |d<   t        d|«      D ]  }| ||dz
     z  |||dz
     z  z
  ||<   Œ |S )Nr   r   r   rq   rr   s        r   Úlucas_vz$test_lucas_sequence.<locals>.lucas_v�   sb   € Ø��f‘ˆØˆˆa‰Øˆˆa‰Ü�q˜&Ó!ò 	;ˆAØ˜5  Q¡™<Ñ'¨!¨e°A¸±E©lÑ*:Ñ:ˆE�!ŠHð	;àˆr!   é   iöÿÿÿr   r   r2   r   r)   r   )r   r   Úpow)rx   rz   ru   rs   rt   ÚDÚusÚvsr   rw   ÚUÚVÚQks                r   Útest_lucas_sequencerƒ   •   só   € òòð €FÜ�3˜‹^ò .ˆÜ�s˜B“ò 	.ˆAØ�1‘�q˜‘s‘
ˆAØ�AŠvØÙ˜˜A˜vÓ&ˆBÙ˜˜A˜vÓ&ˆBÜ˜1˜c 1Ó%ò .�Ü˜v›ò .�AÜ.¨q°!°Q¸Ó:‘H�A�q˜"Ø  1¡¨¡	š>Ð)˜>Ø  1¡¨¡	š>Ð)˜>Ü˜q ! Q›<¨2Ó-Ð-Ð-ñ	.ñ.ñ	.ñ.r!   c                  óV  — t        t        d„ «       t        t        d„ «       t        t        d„ «       t        t        d„ «       t        ddd«      rJ ‚t        ddd«      sJ ‚t        dd	d
«      sJ ‚t        ddd«      sJ ‚t        ddd
«      sJ ‚g d¢} | D ]  }t        |dd
«      rŒJ ‚ y )Nc                  ó   — t        ddd«      S ©Nr)   r   r   ©r   r$   r!   r   r(   z'test_is_fibonacci_prp.<locals>.<lambda>·   ó   € Ô/°°1°aÓ8€ r!   c                  ó   — t        ddd«      S )Nr)   éûÿÿÿr   r‡   r$   r!   r   r(   z'test_is_fibonacci_prp.<locals>.<lambda>¸   s   € Ô/°°2°qÓ9€ r!   c                  ó   — t        ddd«      S )Nr)   r4   r   r‡   r$   r!   r   r(   z'test_is_fibonacci_prp.<locals>.<lambda>¹   rˆ   r!   c                  ó   — t        ddd«      S ©Nr   r4   r   r‡   r$   r!   r   r(   z'test_is_fibonacci_prp.<locals>.<lambda>º   s   € Ô/°°1°bÓ9€ r!   r   r)   r   r4   é   r   r6   r   rD   é   )iÁ  rM   i±
  i¡  éU  é‘  éA  é}*  é‘3  é“;  i‘_  iar  i‡  )r   r,   r   rW   s     r   Útest_is_fibonacci_prpr–   µ   s´   € ä
Œ:Ñ8Ô9Ü
Œ:Ñ9Ô:Ü
Œ:Ñ8Ô9Ü
Œ:Ñ9Ô:ô    1 aÔ(Ð(Ð(ô ˜A˜q !Ô$Ð$Ð$Ü˜A˜q "Ô%Ð%Ð%Ü˜B  1Ô%Ð%Ð%Ü˜G Q¨Ô+Ð+Ð+ò=€Kàò *ˆÜ  1 bÕ)Ð)Ð)ñ*r!   c                  ó4  — t        t        d„ «       t        t        d„ «       t        t        d„ «       t        ddd«      rJ ‚t        ddd«      sJ ‚t        ddd	«      sJ ‚t        d
dd«      sJ ‚t        ddd«      sJ ‚g d¢} | D ]  }t        |dd	«      rŒJ ‚ y )Nc                  ó   — t        ddd«      S r†   ©r   r$   r!   r   r(   z#test_is_lucas_prp.<locals>.<lambda>Î   s   € œ|¨A¨q°!Ó4€ r!   c                  ó   — t        ddd«      S r�   r™   r$   r!   r   r(   z#test_is_lucas_prp.<locals>.<lambda>Ï   s   € œ|¨A¨q°"Ó5€ r!   c                  ó   — t        ddd«      S ©NrR   r)   r   r™   r$   r!   r   r(   z#test_is_lucas_prp.<locals>.<lambda>Ð   s   € œ|¨B°°1Ó5€ r!   r   r)   r   r4   rŽ   r   r6   r   rD   r�   éýÿÿÿ)éC  éy  rV   éó  r�   r‘   r^   r’   iÕ  r“   é�-  r”   i�6  r•   ißB  )r   r,   r   rW   s     r   Útest_is_lucas_prpr¢   Ì   sª   € ä
Œ:Ñ4Ô5Ü
Œ:Ñ5Ô6Ü
Œ:Ñ5Ô6ô ˜A˜q !Ô$Ð$Ð$ô ˜˜1˜aÔ Ð Ð Ü˜˜1˜bÔ!Ð!Ð!Ü˜˜A˜qÔ!Ð!Ð!Ü˜  BÔ'Ð'Ð'òC€Kàò &ˆÜ˜A˜q "Õ%Ð%Ð%ñ&r!   c                  óØ   — t        t        d„ «       t        d«      rJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚g d¢} | D ]  }t        |«      rŒJ ‚ y )Nc                  ó   — t        d«      S ©Nr   )r   r$   r!   r   r(   z'test_is_selfridge_prp.<locals>.<lambda>ä   s   € Ô/°Ó2€ r!   r   r   r)   r6   rD   )rž   rŸ   i‡  i%  r    éS  r‘   io#  iÛ#  r“   i›,  r¡   i_6  i÷9  éí>  )r   r,   r   rW   s     r   Útest_is_selfridge_prpr¨   â   s|   € ä
Œ:Ñ2Ô3ô   Ô"Ð"Ð"ô ˜AÔÐÐÜ˜AÔÐÐÜ˜BÔÐÐÜ˜GÔ$Ð$Ð$òC€Kàò #ˆÜ Õ"Ð"Ð"ñ#r!   c                  ó   — t        t        d„ «       t        t        d„ «       t        t        d„ «       t        ddd«      rJ ‚t        ddd«      sJ ‚t        ddd	«      sJ ‚t        d
dd«      sJ ‚t        ddd«      sJ ‚y )Nc                  ó   — t        ddd«      S r†   ©r   r$   r!   r   r(   z*test_is_strong_lucas_prp.<locals>.<lambda>ø   s   € Ô2°1°a¸Ó;€ r!   c                  ó   — t        ddd«      S r�   r«   r$   r!   r   r(   z*test_is_strong_lucas_prp.<locals>.<lambda>ù   s   € Ô2°1°a¸Ó<€ r!   c                  ó   — t        ddd«      S rœ   r«   r$   r!   r   r(   z*test_is_strong_lucas_prp.<locals>.<lambda>ú   s   € Ô2°2°q¸!Ó<€ r!   r   r)   r   r4   rŽ   r   r6   r   rD   r�   r�   )r   r,   r   r$   r!   r   Útest_is_strong_lucas_prpr®   ö   s�   € ä
Œ:Ñ;Ô<Ü
Œ:Ñ<Ô=Ü
Œ:Ñ<Ô=ô # 1 a¨Ô+Ð+Ð+ô ˜q ! QÔ'Ð'Ð'Ü˜q ! RÔ(Ð(Ð(Ü˜r 1 aÔ(Ð(Ð(Ü˜w¨¨2Ô.Ð.Ñ.r!   c                  óØ   — t        t        d„ «       t        d«      rJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚g d¢} | D ]  }t        |«      rŒJ ‚ y )Nc                  ó   — t        d«      S r¥   )r   r$   r!   r   r(   z.test_is_strong_selfridge_prp.<locals>.<lambda>  s   € Ô6°qÓ9€ r!   r   r   r)   r6   rD   )r¦   r‘   r“   r§   iJ  iãW  iù_  iob  iu�  i—ä  iE% iŸ| i‡ i¥» )r   r,   r   rW   s     r   Útest_is_strong_selfridge_prpr±     s|   € ä
Œ:Ñ9Ô:ô ' qÔ)Ð)Ð)ô # 1Ô%Ð%Ð%Ü" 1Ô%Ð%Ð%Ü" 2Ô&Ð&Ð&Ü" 7Ô+Ð+Ð+òF€Kàò *ˆÜ& qÕ)Ð)Ð)ñ*r!   c                  ó¨   — t        t        d„ «       t        d«      rJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚y )Nc                  ó   — t        d«      S r¥   )r   r$   r!   r   r(   z"test_is_bpsw_prp.<locals>.<lambda>  s
   € œ{¨1›~€ r!   r   r   r)   r6   rD   )r   r,   r   r$   r!   r   Útest_is_bpsw_prpr´     sP   € ä
Œ:Ñ-Ô.ô ˜1Œ~ÐÐô �qŒ>Ðˆ>Ü�qŒ>Ðˆ>Ü�rŒ?Ðˆ?Ü�wÔÐÑr!   c                  ó¨   — t        t        d„ «       t        d«      rJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚y )Nc                  ó   — t        d«      S r¥   )r   r$   r!   r   r(   z)test_is_strong_bpsw_prp.<locals>.<lambda>*  s   € Ô1°!Ó4€ r!   r   r   r)   r6   rD   )r   r,   r   r$   r!   r   Útest_is_strong_bpsw_prpr·   (  sW   € ä
Œ:Ñ4Ô5ô " !Ô$Ð$Ð$ô ˜aÔ Ð Ð Ü˜aÔ Ð Ð Ü˜bÔ!Ð!Ð!Ü˜gÔ&Ð&Ñ&r!   N)#Ú	itertoolsr   Úsympy.external.ntheoryr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   Úsympy.testing.pytestr   r    r%   r0   r;   rY   ri   rn   rƒ   r–   r¢   r¨   r®   r±   r´   r·   r$   r!   r   ú<module>r»      sw   ðÝ "÷E÷ E÷ E÷ Eñ Eõ
 (ò1ò*ò3ò#ò(#ò6"ò6#ò6.ò@*ò.&ò,#ò(/ò *ò( ó'r!   