
    sg&                         d dl m Z mZ d dlmZ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mZmZmZ d dlmZmZ d dl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$y)    )bisectbisect_left)mobiustotient)sieveSieve)
isprime	randprime	nextprime	prevprime
primerangeprimepiprime	primorial	compositecompositepi)cycle_length_primepi)mr)raisesc                  2   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 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 t        d      dk(  sJ t        t        d        t        j                  d       t        d      dk(  sJ t        t        d        y )N                  9     (  i  /  i    i9k     iٗ  #  iqp a  imb i iͱ
iiszyc                      t        d      S Nr   r        T/var/www/html/venv/lib/python3.12/site-packages/sympy/ntheory/tests/test_generate.py<lambda>ztest_prime.<locals>.<lambda>   
    uQx r*   i  i
  c                      t        d      S Nr(   r)   r*   r+   r,   ztest_prime.<locals>.<lambda>   
    uRy r*   )r   r   
ValueErrorr   extendr)   r*   r+   
test_primer4      s   8q==8q==8r>>9??9::;%;%;%<6!!!?i'''?j(((
:'(	LL:
:()r*   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 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 t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        j                  d       t        d      dk(  sJ y )Nr0   r   r   r   r   r   r   r      r    >   r!   f   r"   i  r#   i4  r$   ih  r%   i
   iW ein    j i  i/  )r   r   r3   r)   r*   r+   test__primepir=       s0   B<1A;!A;!A;!B<1B<2C=BC=CD>S   D>S   D>T!!!E?d"""E?g%%%I(***J9,,,	LLD>S   r*   c                  8   ddl m}   | 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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 t        d      dk(  sJ  | j                  d       t        d      dk(  sJ t        d      dk(  sJ t        t        d        y ) Nr   r   r      r      r   
   r      )   :   r   P   r    ir  r!   i  r"   i  r#   i  r$   i(  r%   im  i  i  i
  i  c                      t        d      S r'   )r   r)   r*   r+   r,   z test_composite.<locals>.<lambda>F   
    y| r*   )sympy.ntheory.generater   _resetr   r3   r   r2   r?   s    r+   test_compositerK   4   s&   ,ELLNQ<1Q<1Q<2R=BR=BR=BS>S   S>S   T?d"""T?d"""T?e###Uu$$$ELLT?d"""T?d"""
:+,r*   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 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 t        d      dk(  sJ t        d      dk(  sJ t        j                  d       t        d      dk(  sJ y )Nr   r   r   r   r   r   (   r       r!   i  r"   i	
  r#   i  r$   i  r%   iV  r9   iPr:   i؇Gr;   l   >e i	  i  )r   r   r3   r)   r*   r+   test_compositepirO   I   s&   q>Qq>Qq>Qr?ar?b   ss"""ss"""t$$$t$$$t$$$u&&&u)))y!Y...z"j000	LLt$$$r*   c            	         ddl m}   | 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k(  sJ t	        d	      d
k(  sJ t	        d      dk(  sJ t	        d      dk(  sJ  | j
                  d       | j                  d   dk(  sJ | j                  d   dk  sJ d| v sJ t        d      dk(  sJ t        ddz        ddz  dz   k(  sJ g d}t        t        |      dz
        D ]_  }t        dt        |      |z
        D ]B  }t        ||   |      |||z      k(  sJ d|k  s#t        ||   dz
  |      |||z   dz
     k(  rBJ  a t        t        d        t        t        d        t	        d      dk(  sJ t	        ddz        ddz  dz
  k(  sJ t        t        d        t        t        d        dD ]=  }t        |      }t        |j                  d   dz   |j                  d   dz   dz  d      D ]d  }t        |dz   |j                  d   dz   dz        D ]=  }t        |j                  ||            }|t        ||      t        ||       }	||	k(  r=J  f t        |j                  d   |d   dz
  d      D ]t  }
t        |      }|j!                  |
       t        |j                        |d t        ||
       k(  sJ |j!                  |d          t        |j                        |k(  rtJ  @ t         | j"                  dd            g k(  sJ t         | j"                  dd            ddgk(  sJ  | j                  d !       t         | j"                  dd	            g d"k(  sJ t         | j"                  d	            g d"k(  sJ t         | j"                  d#            g d$k(  sJ t         | j"                  d%            g k(  sJ t         | j"                  d&            g d'k(  sJ t         | j"                  d(            g d)k(  sJ t         | j$                  dd*            g d+k(  sJ  | j                  d ,       t         | j$                  dd	            g d-k(  sJ t         | j$                  d.d/            t        d.d/      D cg c]  }t'        |       c}k(  sJ t         | j$                  dd            g k(  sJ t         | j$                  dd            dgk(  sJ t         | j(                  dd*            g d0k(  sJ  | j                  d 1       t         | j(                  dd	            g d2k(  sJ t         | j(                  d3d4            t        d3d4      D cg c]  }t+        |       c}k(  sJ t         | j(                  dd            g k(  sJ t         | j(                  dd            dgk(  sJ t        t#        dd            g k(  sJ t        t#        dd            g d5k(  sJ t        t#        dd            g d$k(  sJ t        t#        d3d4            g d6k(  sJ t               }t        d7d8d9      D ]Q  }t        dd:d;      D ]?  }t        |j#                  |||z               }t        t#        |||z               }	||	k(  r?J  S t               } | j                  d !        | j                   d	       t        d<      D ]J  }t        |d<      D ]9  }t        |j#                  ||            }t        t#        ||            }	||	k(  r9J  L  | j                   d/       d=D ]8  \  }}t        t#        ||            t        |j#                  ||            k(  r8J   | j                  d !        | j                   d>       t        | j                        t        t-        | j                              k(  sJ t               }|d   d&k(  sJ t        dd      dk(  sJ t        t        d?        t        t        d@        t/        ddg      dAu sJ dB }t1        t3        |dC            dDk(  sJ t        t3        |dCd E            g dFk(  sJ t1        t3        |dCdG            dHk(  sJ t        t3        |dCdd I            g dJk(  sJ  | j                   dK       t        dL      dMk(  sJ t	        dN      dOk(  sJ t        t        dP        t        t        dQ        y c c}w c c}w )RNr   r?   r   r   r            r         rC   	   r0      r   Z   a   rB   rM   y   )>r   r   r   rR   r   rT   rV   rU   rX      r   %   rD   +   /   5   ;   =   C   G   I   O   S   Y   rZ   e   g   k   m   q                                                               rN            i  i  r   i  i  i  i  i%  r   c                      t        dd      S )Nr   r   r   r)   r*   r+   r,   ztest_generate.<locals>.<lambda>}       yA r*   c                      t        dd      S )Nr   r0   r   r)   r*   r+   r,   ztest_generate.<locals>.<lambda>~   s    yB/ r*   rh   c                      t        d      S r'   r   r)   r*   r+   r,   ztest_generate.<locals>.<lambda>   r-   r*   c                      t        d      S r/   r   r)   r*   r+   r,   ztest_generate.<locals>.<lambda>   r1   r*   )r   rB   r   i@B )sieve_intervalTr(   )r   r   r   rR   r      r   r   r   rR   r\   )	r   r   r   rR   r   rT   rV   rU   rX   "   )r   r   r   rR   r   rT   rV   rU   rX   r\   r      )
r@   r   rA   r@   rA   r@   rB   r@   rS   rA   r   )
r   r   r@   r   rA   r@   rA   r@   rB   r@   i    )
r0   r   r0   r   r   r   r0   r   r0   r   )r   )
r0   r   r0   r   r0   r   r   r   r0   r   i  iL  )r   r   r   )i  i%  i'  i-  i?  iC  iE  iI     i.	  ix  i  is     ))i  iO  )i&  iJ )r<   i1u  )i iQi )iM iU i c                      t        d      S r'   r   r)   r*   r+   r,   ztest_generate.<locals>.<lambda>   s
    wqz r*   c                      t        d      S r'   r   r)   r*   r+   r,   ztest_generate.<locals>.<lambda>   rH   r*   Fc                     | dz  dz   dz  S )Nr   r   3   r)   )is    r+   r,   ztest_generate.<locals>.<lambda>   s    adQh"_ r*   r@   )rA   r   )values)r@   rV   #   r   r         ,   2   r   r   r   r   )nmax)r   N)r   r   )r@   rV   r   r   r   r"   i  i  ir  io  c                      t        d      S Nr   r   r)   r*   r+   r,   ztest_generate.<locals>.<lambda>   rH   r*   c                      t        d      S )NrQ   r   r)   r*   r+   r,   ztest_generate.<locals>.<lambda>   s
    y} r*   )rI   r   rJ   r   r   extend_to_no_listrangelenr   r2   r   list_primeranger   r   r3   r   totientranger   mobiusranger   setr   nextr   )r   	primelistr   jr   sheadtailABkxabfuncs                  r+   test_generater   \   s_	   ,ELLNR=AQ<1Q<1R=BQ<1Q<1R=BR=BR=BEq;;r?b   ;;r?R;;R=BRVR#...9I 3y>A%& Nq#i.1,- 	NAYq\1-1q51AAAA1u 1!1151q5199MMMM	NN
 :./
:/0R=BRVR"---
:'(
:()0 .0!''"+/AGGBK!Oa+?C 	DdQhq1(<= tT23fY5k)T6RSAvv	
 qwwr{IbMA$5q9 	.A^4AHHQK=I.Cvi/C$DDDDHHYr]#=I---	..    Q'(B...   A&'Aq6111ELLt   B'(,<<<<   $%)9999   #$444   $%+++   $%)IIII   $%)QQQQ"""1b)*.NNNNELL"""1b)*.MMMM"""3-.uSRVGW2X!71:2XXXX"""1a()R///"""1a()aS000!!!!R()-OOOOELL!!!!R()-OOOO!!!$-.eDRVFW2X6!92XXXX!!!!Q'(B...!!!!Q'(QC///
2q!"b(((
1a !Y...
1b!"l222
4&' ,, , , ,A2tS! q$% 	AQ\\!QU+,AZ1q5)*A6M6	
 	AELLtELL3Z q# 	AQ\\!Q'(AZ1%&A6M6	
 ELL B1 Jq!$%all1a.@)AAAAB ELLtELLu{{s3u{{#34444AR5B;;Q?a
:)*
:+,a!:$DT1%&&000T1T2378 8 8T11-.);;;T11T:;  ELLT?d"""T?d"""
:+,
:,- 3Y 3Ys   "e	 ec                     t        dd      J t        dd      J t        dd      dk(  sJ t        dd      dk(  sJ t        dd      dk(  sJ t        t        d        t        t        d        t        t        d	        t        t        d
        t        t        d        dD ]7  } dD ]0  }t        | | |z         }| |cxk  r| |z   k  rn J t        |      r0J  9 y )NrB   r   r   r   r   c                      t        dd      S )Nir   r
   r)   r*   r+   r,   z test_randprime.<locals>.<lambda>   s    yb1 r*   c                      t        dd      S )Nir   r   r)   r*   r+   r,   z test_randprime.<locals>.<lambda>   s    ya0 r*   c                      t        dd      S )NrC      r   r)   r*   r+   r,   z test_randprime.<locals>.<lambda>   s    yR0 r*   c                      t        dd      S )Nr   r   r   r)   r*   r+   r,   z test_randprime.<locals>.<lambda>   r   r*   c                      t        dd      S )Nr   r   r   r)   r*   r+   r,   z test_randprime.<locals>.<lambda>   r   r*   )d   i,  i  i )r
   r   r2   r	   )r   r   ps      r+   test_randprimer      s    R###Q###Q?aQ?aQ?a
:12
:01
:01
:./
:./$ 3( 	3A!QU#A#QU#22
22	33r*   c                      t        d      dk(  sJ t        dd      dk(  sJ t        d      dk(  sJ t        dd      dk(  sJ t        dd      dk(  sJ y )Nr   r   r   )nthrA   r@   r   r)   r*   r+   test_primorialr      se    Q<1QA!###Q<1QA!###QA!###r*   c                  |    dt         v sJ dt         vsJ dt         vsJ ddz  t         vsJ t        t        d        y )Nr   g @r   r   c                  ,    t        j                  d      S r   )r   searchr)   r*   r+   r,   ztest_search.<locals>.<lambda>   s    u||A r*   )r   r   r2   r)   r*   r+   test_searchr      sE    ::eE>>d7%
:./r*   c                     t         d   dk(  sJ t        t         dd       t        dd      D  cg c]  } t         |     c} k(  sJ t        t         ddd         t        ddd      D  cg c]  } t         |     c} k(  sJ t        t         dd       g dk(  sJ t        t        d        t        t        d        t        t        d	        y c c} w c c} w )
Nr   r   rB   r   r   r   c                      t         d d S )Nr   r?   r)   r*   r+   r,   z"test_sieve_slice.<locals>.<lambda>  s    uRay r*   c                      t         d   S r'   r?   r)   r*   r+   r,   z"test_sieve_slice.<locals>.<lambda>  s
    uQx r*   c                      t         dd S )Nr   r   r?   r)   r*   r+   r,   z"test_sieve_slice.<locals>.<lambda>	  s    uQqz r*   )r   r   r   r   
IndexError)r   s    r+   test_sieve_slicer     s    8r>>a5B< @aq @@@@a1fU1b!_"E58"EEEEa
|+++
:()
:'(
:)* !A"Es   C(Cc                  |    g } t         D ]  }|dkD  r n| j                  |        | t        t         dd       k(  sJ y )NrR   r   r   )r   appendr   )r   values     r+   test_sieve_iterr     sG    F 19e T%!*%%%%r*   c                  P    dt        t              v sJ dt        t              v sJ y )Nr   r   )reprr   r)   r*   r+   test_sieve_reprr     s&    d5k!!!d5k!!!r*   c                  j    ddl m}   |        5  t        d      dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr   warns_deprecated_sympy)sympy.testing.pytestr   r   r   s    r+   *test_deprecated_ntheory_symbolic_functionsr     s0    ;		! qzQ  s   )2N)%r   r   %sympy.functions.combinatorial.numbersr   r   rI   r   r   sympy.ntheoryr	   r
   r   r   r   r   r   r   r   r   r   r   sympy.ntheory.primetestr   r   r   r4   r=   rK   rO   r   r   r   r   r   r   r   r   r)   r*   r+   <module>r      sg    & A 1B B B 9 & '*(!(-*%&B.J3"$0+&"
r*   