
    Rie                         d dl 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 d dlmZ d Zd Zed             Zd Zd	 Zd
 ZdS )    )Sievesieve)mris_lucas_prp	is_squareis_strong_lucas_prpis_extra_strong_lucas_prpisprimeis_euler_pseudoprimeis_gaussian_prime)slow)Ic                     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k    sJ 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k    sJ 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k    sJ 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k    sJ t          d d!          dk    sJ d S )"N	      TU     Fy                     7   o   s   r   1   u   U   T   W   X      '   M   i&     i"     i   i'     )r        Blib/python3.11/site-packages/sympy/ntheory/tests/test_primetest.pytest_euler_pseudoprimesr.   	   s   1%%----Q''50000Q''4////Q''4////Q''50000Q''50000C((D0000S))T1111C((D0000B''4////B''4////C((D0000B''4////b))T1111b))U2222b))U2222b))T111111r,   c                     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k    sJ d S )	Nr   F  T}*  r         r	   r+   r,   r-   test_is_extra_strong_lucas_prpr5      s    $Q''50000$S))T1111$U++t3333$Q''50000$R((E1111$S))U222222r,   c                     d t          dd          D             } t          |           dk    sJ d | D             g dk    sJ d | D             g dk    sJ d	 | D             g d
k    sJ t          d | D                       rJ d | D             g dk    sJ d | D             g dk    sJ d | D             g dk    sJ d S )Nc                 :    g | ]}|d z  t          |          |S r   )r
   .0ns     r-   
<listcomp>ztest_prps.<locals>.<listcomp>&   s>     " " "1	A"ajj"Q " " "r,   r   順 inyc                 4    g | ]}t          |d g          |S r8   r   r9   s     r-   r<   ztest_prps.<locals>.<listcomp>*   '    333!1qc

3A333r,   )i  i    I  i   i=  ir  i/  i  i  i  i# i: iM i%Y ib c                 4    g | ]}t          |d g          |S )r   r?   r9   s     r-   r<   ztest_prps.<locals>.<listcomp>-   r@   r,   )r   i  ic  i  i   "  iY)  s0  i@  i!I  iK  i[  i{  i  ]  i  i  ia# i4 iQB iiW iY i} c                 4    g | ]}t          |d g          |S )E  r?   r9   s     r-   r<   ztest_prps.<locals>.<listcomp>1   s'    555!1se5A555r,   )1r         r   A   Q   rH   r   iW  i  iu  i  ie  i  i  rA   rB   iM  i  iu  i3  rD   rE   iq2  i:  i>  i1N  iV  iZ  iI`  iaa  ia|  i+  ig  iͨ  i  rF   iy  ie  i  iY  i  i  i  i i i+ iI2 iwO c              3   8   K   | ]}t          |d g          V  dS )l   j_| Nr?   r9   s     r-   	<genexpr>ztest_prps.<locals>.<genexpr>8   s0      GGA2a-.//GGGGGGr,   c                 0    g | ]}t          |          |S r+   )r   r9   s     r-   r<   ztest_prps.<locals>.<listcomp>9   s#    888!Q8A888r,   )9iC  iy  i  i%  i  S    io#  i#  r1   i,  i-  i_6  i9  >  iS?  iG  J  icJ  W  io[  _  ob  ie  ie  ij  i  i  i  铘  i#  i	  u  iC  i  i  i  i  i  i    i  i  i    E% i- i6 i7 i'D iI i/P i` iq iz | c                 0    g | ]}t          |          |S r+   )r   r9   s     r-   r<   ztest_prps.<locals>.<listcomp>A   s&    ???!(;A(>(>?A???r,   )rP   rQ   r1   rR   rS   rT   rU   rV   rX   rY   r\   r]   c                 0    g | ]}t          |          |S r+   r4   r9   s     r-   r<   ztest_prps.<locals>.<listcomp>D   s4       !(A!(D(D A   r,   )r0   i  rQ   r1   iCm  is  ix  i{  rW   rZ   r[   r\   )rangesumany)oddcompositess    r-   	test_prpsrd   $   s   " "a " " "M }++++33}333 89 89 89 9 9 9 9 43}333 82 82 82 2 2 2 2 65}555 : : :     GGGGGGGGGG88}888 =9 =9 =9 9 9 9 9 @?}??? D D D     }          r,   c                     t                      } |                     d           t          |                     dd                    }t	          d          D ]}||v t          |          k    sJ t          d          sJ t          d          sJ t          d          sJ t          d          sJ t          d          sJ t          d	          sJ t          d
          sJ t          d          sJ t          d          sJ t          t          d                    sJ t          d          sJ t          ddz  dz
            sJ t          ddz  dz
            sJ t          ddz  dz
            rJ t          d          rJ t          d          rJ t          d          rJ t          d          rJ t          d          rJ t          d          rJ t          d          rJ t          d          rJ t          t          d                    rJ t          t          d                    rJ t          j        d           t          d          sJ t          d          rJ t          d           rJ d S )!Nr=   r   i iͱ
l   {! l   \)l   yW-	l   GPFQw8 l   XFqb l   Ii|	3mV&> l   :_sh1S3b l	   #:gWj#0[ z
531137992816767098689588206552468627329593117727031923199444138200403559860852242739162502265229285668889329486246501015346579337652707239409519978766587351943831270835393219031728127l    Y   r   i_  iY  l   ;n>l   pl   He%Z	 l   y5D( l   --	l   q.;m l   7y_@I7 l   k$9H"YaR  
8038374574536394912570796143419421081388376882875581458374889175222974273765333652186502336163960045457915042023603208766569966760987284043965408232928738791850869166857328267761771029389697739470167082304286871099974399765441448453411558724506334092790222752962294149842306881685404326457534018329786111298960644845216191652872597534901a  
2887148238050771212671429597130393991977609459279722700926516024197432303799152733116328983144639225941977803110929349655578418949441740933805615113979999421542416933972905423711002751042080134966731755152859226962916775325475044445856101949404200039904432116776619949629539250452698719329070373564032273701278453899126120309244841494728976885406024976768122077071687938121709811322297802059565867i  i  is  g       @)r   extendset
primeranger`   r
   intr   )spsr;   s      r-   test_isprimerm   J   s   AHHV	Q\\!V$$	%	%B6]] ' 'RGAJJ&&&&&9;=!!!!!=!!!!!'(((((,-----011111566666:;;;;;3 1 2 2 3 3 3 3 3 91b5191c6A:q#vz"""""
 }%%%%%}%%%%%'''''*+++++'(((((/00000/00000566666
 s A B B C C C C C s 8 9 9 : : : : : 
L4==t}}s||r,   c                      d t          d          D             g dk    sJ t          d          rJ t          d          rJ t          d          rJ t          d          rJ t          d          rJ d S )	Nc                 0    g | ]}t          |          |S r+   )r   )r:   is     r-   r<   z"test_is_square.<locals>.<listcomp>   s#    111!IaLL1A111r,   rI   )r   r   r   r   r2   iK i <Y.l    @7Zkl   ,3;, i ^ )r`   r   r+   r,   r-   test_is_squarerq      s    11uRyy1115E5E5EEEEE !!!!!!!!!!!!!!!""""""""""""r,   c                      t          dt          z            sJ t          d          sJ t          ddt          z  z             sJ t          ddt          z  z             rJ d S )N   r   r   )r   r   r+   r,   r-   test_is_gaussianprimert      sl    QqS!!!!!QQ1W%%%%% QqS)))))))r,   N)sympy.ntheory.generater   r   sympy.ntheory.primetestr   r   r   r   r	   r
   r   r   sympy.testing.pytestr   sympy.core.numbersr   r.   r5   rd   rm   rq   rt   r+   r,   r-   <module>ry      s   / / / / / / / /8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 & % % % % %            2 2 2&3 3 3 " " "JD D DN# # #* * * * *r,   