
    MZd                         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y)    )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                  F   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 y )"N	      TU     Fy                     7   o   s   r   1   u   U   T   W   X      '   M   i&     i"     i   i'     )r        D/usr/lib/python3/dist-packages/sympy/ntheory/tests/test_primetest.pytest_euler_pseudoprimesr.   	   sg   1%---Q'5000Q'4///Q'4///Q'5000Q'5000C(D000S)T111C(D000B'4///B'4///C(D000B'4///b)T111b)U222b)U222b)T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 y )	Nr   F  T}*  r         )r	   r+   r,   r-   test_is_extra_strong_lucas_prpr4      st    $Q'5000$S)T111$U+t333$Q'5000$R(E111$S)U222r,   c                     t        dd      D  cg c]  } | dz  rt        |       s|  }} t        |      dk(  sJ |D  cg c]  } t        | dg      s|  c} g dk(  sJ |D  cg c]  } t        | dg      s|  c} g dk(  sJ |D  cg c]  } t        | dg      s|  c} g d	k(  sJ t	        d
 |D              rJ |D  cg c]  } t        |       s|  c} g dk(  sJ |D  cg c]  } t        |       s|  c} g dk(  sJ |D  cg c]  } t        |       s|  c} g dk(  sJ y c c} w c c} w c c} w c c} w c c} w c c} w c c} w )Nr   順 r   iny)i  i    I  i   i=  ir  i/  i  i  i  i# i: iM i%Y ib r   )r   i  ic  i  i   "  iY)  s0  i@  i!I  iK  i[  i{  i  ]  i  i  ia# i4 iQB iiW iY i} E  )1r         r   A   Q   r<   r   iW  i  iu  i  ie  i  i  r7   r8   iM  i  iu  i3  r9   r:   iq2  i:  i>  i1N  iV  iZ  iI`  iaa  ia|  i+  ig  iͨ  i  r;   iy  ie  i  iY  i  i  i  i i i+ iI2 iwO c              3   6   K   | ]  }t        |d g        yw)l   j_| N)r   ).0ns     r-   	<genexpr>ztest_prps.<locals>.<genexpr>8   s     GA2a-./Gs   )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 | )rE   rF   r1   rG   rH   rI   rJ   rK   rM   rN   rQ   rR   )r0   i  rF   r1   iCm  is  ix  i{  rL   rO   rP   rQ   )ranger
   sumr   anyr   r   r	   )rC   oddcompositess     r-   	test_prpsrW   $   s    %a "1	Agaj  "M " }+++$3!1qc
A3 89 9 9 9 %3!1qc
A3 82 2 2 2 %5!1seA5 :    GGGGG$8!QA8 =9 9 9 9 %?!(;A(>A? D    % !(A!(DA   =" 4 4 6 9 @sL   D'D,D,#D16D1D6D6D;D;$E 5E EEc                     t               } | j                  d       t        | j                  dd            }t	        d      D ]  }||v t        |      k(  r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 y )!Nr6   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
primerangerS   r
   intr   )spsrC   s      r-   test_isprimer`   J   s:   AHHV	Q\\!V$	%B6] 'RGAJ&&&' 9;=!!!=!!!'(((,---01115666:;;;3 1 2 3 3 3 91b5191c6A:q#vz"""
 }%%%}%%%'''*+++'(((/000/0005666
 s A B C C C s 8 9 : : : 
LL4==t}s||r,   c                      t        d      D  cg c]  } t        |       s|  c} 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 y c c} w )Nr=   )r   r   r   r   r2   iK i <Y.l    @7Zkl   ,3;, i ^ )rS   r   )is    r-   test_is_squarerc      sv    Ry1!IaLA15EEEE !!!!!!!!!""""""" 2s
   A/A/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 y )N   r   r   )r   r   r+   r,   r-   test_is_gaussianprimerf      sQ    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.   r4   rW   r`   rc   rf   r+   r,   r-   <module>rk      sO    /8 8 8 &  2&3 " "JDN#*r,   