
\c           @   s   d  d l  m 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 d   Z e d    Z d   Z d   Z d	 S(
   i(   t   range(   t   Sievet   sieve(   t   mrt   is_lucas_prpt	   is_squaret   is_strong_lucas_prpt   is_extra_strong_lucas_prpt   isprimet   is_euler_pseudoprime(   t   slowc           C   s  t  d d  t k s t  t  d d  t k s6 t  t  d d  t k sQ t  t  d d  t k sl t  t  d d	  t k s t  t  d
 d  t k s t  t  d d  t k s t  t  d d  t k s t  t  d d  t k s t  t  d d  t k st  t  d d  t k s)t  t  d d  t k sDt  t  d d  t k s_t  t  d d  t k szt  t  d d  t k st  t  d d  t k st  t  d d  t k st  d  S(    Ni	   i   iU  i   iy   i   i   i   i   i   i   i7   io   is   ir   i1   iu   iU   iT   iW   iX   i   i'   iM   i&  i   i"  i   i   i'  i   (   R	   t   Truet   AssertionErrort   False(    (    (    sA   lib/python2.7/site-packages/sympy/ntheory/tests/test_primetest.pyt   test_euler_pseudoprimes	   s"    c       :   C   s  g  t  d d  D]# }  |  d r t |   r |  ^ q } t |  d k sQ t  g  | D] }  t |  d g  rX |  ^ qX d d d d	 d
 d d d d d d d d d d d g k s t  g  | D] }  t |  d g  r |  ^ q d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- g k s4t  g  | D] }  t |  d. g  r;|  ^ q;d/ d0 d1 d2 d3 d4 d. d5 d6 d7 d8 d9 d: d; d< d d	 d= d> d? d@ d d dA dB dC dD dE dF dG dH dI dJ dK dL dM d% dN dO dP dQ dR dS dT dU dV dW dX dY g1 k st  t dZ   | D  st  g  | D] }  t |   r"|  ^ q"d[ d\ d] d^ d_ d` da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz d{ d| d} d~ d d d d d d d d d d d d d d d d d d d d d g9 k st  g  | D] }  t |   r|  ^ qd` da dd di dl dn dp dq d{ d d d g k sLt  g  | D] }  t |   rS|  ^ qSd d da dd d d d d dx d d d g k st  d  S(   Ni   i
   i   i   inyi  i  i  iI  i   i=  ir  i/  i  i  i  i# i: iM i%Y ib i   iy   i  ic  i  i   i"  iY)  is0  i@  i!I  iK  i[  i{  i  i]  i  i  ia# i4 iQB iiW iY i} iE  i	   i   i   i1   iA   iQ   iU  iW  i  iu  i  ie  i  i  iM  i  iu  i3  iq2  i:  i>  i1N  iV  iZ  iI`  iaa  ia|  i+  ig  iͨ  i  iy  ie  i  iY  i  i  i  i i i+ iI2 iwO c         s   s!   |  ] } t  | d  g  Vq d S(   l   j_| N(   R   (   t   .0t   n(    (    sA   lib/python2.7/site-packages/sympy/ntheory/tests/test_primetest.pys	   <genexpr>1   s    iC  iy  i  i%  i  iS  i  io#  i#  i}*  i,  i-  i_6  i9  i>  iS?  iG  iJ  icJ  iW  io[  i_  iob  ie  ie  ij  i  i  i  i  i#  i	  iu  iC  i  i  i  i  i  i  i  i  i  i i i  iE% i- i6 i7 i'D iI i/P i` iq iz i| i  i  iCm  is  ix  i{  i (	   R    R   t   sumR   R   t   anyR   R   R   (   R   t   oddcomposites(    (    sA   lib/python2.7/site-packages/sympy/ntheory/tests/test_primetest.pyt	   test_prps   s@    #($(!($"$""c          C   sy  t    }  |  j d  t |  j d d   } x2 t d  D]$ } | | k t |  k s; t  q; Wt d  su t  t d  s t  t d  s t  t d  s t  t d  s t  t d	  s t  t d
  s t  t d  s t  t d  st  t t d   st  t d"  s/t  t d$  sAt  t d&  sSt  t d(  sft  t d  syt  t d  st  t d  st  t d  st  t d  st  t d  st  t d  st  t d  st  t t d   st  t t d   s0t  t j d  t d  sOt  t d  sbt  t d   sut  d  S()   Ni i   i iͱ
I   I.A  I`  l   GPFQw8 l   XFqb l   Ii|	3mV&> l   :_sh1S3b l	   #:gWj#0[ s   
531137992816767098689588206552468627329593117727031923199444138200403559860852242739162502265229285668889329486246501015346579337652707239409519978766587351943831270835393219031728127i=   i   iY   i_  iY  I;?  I8)  IȲR6 IO'5I-C¤  l   q.;m l   7y_@I7 l   k$9H"YsR  
8038374574536394912570796143419421081388376882875581458374889175222974273765333652186502336163960045457915042023603208766569966760987284043965408232928738791850869166857328267761771029389697739470167082304286871099974399765441448453411558724506334092790222752962294149842306881685404326457534018329786111298960644845216191652872597534901s  
2887148238050771212671429597130393991977609459279722700926516024197432303799152733116328983144639225941977803110929349655578418949441740933805615113979999421542416933972905423711002751042080134966731755152859226962916775325475044445856101949404200039904432116776619949629539250452698719329070373564032273701278453899126120309244841494728976885406024976768122077071687938121709811322297802059565867i  i  is  g       @I        Il              @l   ?l)                                                                                    l)    l)                                                                                    l)    (	   R   t   extendt   sett
   primerangeR    R   R   t   intR   (   t   st   psR   (    (    sA   lib/python2.7/site-packages/sympy/ntheory/tests/test_primetest.pyt   test_isprimeC   sH    	"c          C   sJ   g  t  d  D] }  t |   r |  ^ q d d d d d g k sF t  d  S(   Ni   i    i   i   i	   i   (   R    R   R   (   t   i(    (    sA   lib/python2.7/site-packages/sympy/ntheory/tests/test_primetest.pyt   test_is_square   s    N(   t   sympy.core.compatibilityR    t   sympy.ntheory.generateR   R   t   sympy.ntheory.primetestR   R   R   R   R   R   R	   t   sympy.utilities.pytestR
   R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/sympy/ntheory/tests/test_primetest.pyt   <module>   s   4	&	G