
    \h&                         S SK J r Jr  S SKJrJr  S SKJrJr  S SKJ	r	J
r
JrJrJrJrJrJrJrJr  S SKJrJr  S SKJr  S SKJr  S rS	 rS
 rS rS rS rS rS r S r!S r"S r#S r$g)    )bisectbisect_left)mobiustotient)sieveSieve)
isprime	randprime	nextprime	prevprime
primerangeprimepiprime	primorial	compositecompositepi)cycle_length_primepi)mr)raisesc                  P   [        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S	5      S
:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        [        S 5        [        R                  " S5        [        S5      S:X  d   e[        [        S 5        g )N                  9     (  i  /  i    i9k     iٗ  #  iqp a  imb i iͱ
iiszyc                      [        S5      $ Nr   r        Y/var/www/auris/envauris/lib/python3.13/site-packages/sympy/ntheory/tests/test_generate.py<lambda>test_prime.<locals>.<lambda>       uQxr*   i  i
  c                      [        S5      $ Nr(   r)   r*   r+   r,   r-          uRyr*   )r   r   
ValueErrorr   extendr)   r*   r+   
test_primer5      s   8q==8q==8r>>9??9::;%;%;%<6!!!?i'''?j(((
:'(	LL:
:()r*   c                  P   [        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S	:X  d   e[        S
5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        R                  " S5        [        S5      S:X  d   eg )Nr1   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   r4   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                  T   SSK Jn   U R                  " 5         [        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S	5      S
:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   eU R                  " S5        [        S5      S:X  d   e[        S5      S:X  d   e[        [        S 5        g ) 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                      [        S5      $ r'   )r   r)   r*   r+   r,    test_composite.<locals>.<lambda>F       y|r*   )sympy.ntheory.generater   _resetr   r4   r   r3   r@   s    r+   test_compositerM   4   s"   ,	LLNQ<1Q<1Q<2R=BR=BR=BS>S   S>S   T?d"""T?d"""T?e###Uu$$$	LLT?d"""T?d"""
:+,r*   c                  .   [        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S	:X  d   e[        S
5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        R                  " S5        [        S5      S:X  d   eg )Nr   r   r   r   r   r   (   r       r!   i  r"   i	
  r#   i  r$   i  r%   iV  r:   iPr;   i؇Gr<   l   >e i	  i  )r   r   r4   r)   r*   r+   test_compositepirQ   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            	         SSK Jn   U R                  " 5         [        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S	:X  d   e[	        S5      S:X  d   e[	        S5      S:X  d   e[	        S	5      S
:X  d   e[	        S5      S:X  d   e[	        S5      S:X  d   eU R
                  " S5        U R                  S   S:X  d   eU R                  S   S:  d   eSU ;   d   e[        S5      S:X  d   e[        SS-  5      SS-  S-   :X  d   e/ SQn[        [        U5      S-
  5       Hb  n[        S[        U5      U-
  5       HC  n[        X   U5      XU-      :X  d   eSU:  d  M$  [        X   S-
  U5      XU-   S-
     :X  a  MC   e   Md     [        [        S 5        [        [        S 5        [	        S5      S:X  d   e[	        SS-  5      SS-  S-
  :X  d   e[        [        S 5        [        [        S 5        S GH<  n[        US9n[        UR                  S   S-   UR                  S   S-   S-  S5       Hd  n[        US-   UR                  S   S-   S-  5       H;  n[        UR                  Xg5      5      nU[        X5      [        X5       n	X:X  a  M;   e   Mf     [        UR                  S   US   S-
  S5       Hs  n
[        US9nUR!                  U
5        [        UR                  5      US [        X5       :X  d   eUR!                  US   5        [        UR                  5      U:X  a  Ms   e   GM?     [        U R"                  " SS5      5      / :X  d   e[        U R"                  " SS5      5      SS/:X  d   eU R                  " S S!9  [        U R"                  " SS	5      5      / S"Q:X  d   e[        U R"                  " S	5      5      / S"Q:X  d   e[        U R"                  " S#5      5      / S$Q:X  d   e[        U R"                  " S%5      5      / :X  d   e[        U R"                  " S&5      5      / S'Q:X  d   e[        U R"                  " S(5      5      / S)Q:X  d   e[        U R$                  " SS*5      5      / S+Q:X  d   eU R                  " S S,9  [        U R$                  " SS	5      5      / S-Q:X  d   e[        U R$                  " S.S/5      5      [        S.S/5       Vs/ s H  n['        U5      PM     sn:X  d   e[        U R$                  " SS5      5      / :X  d   e[        U R$                  " SS5      5      S/:X  d   e[        U R(                  " SS*5      5      / S0Q:X  d   eU R                  " S S19  [        U R(                  " SS	5      5      / S2Q:X  d   e[        U R(                  " S3S45      5      [        S3S45       Vs/ s H  n[+        U5      PM     sn:X  d   e[        U R(                  " SS5      5      / :X  d   e[        U R(                  " SS5      5      S/:X  d   e[        [#        SS5      5      / :X  d   e[        [#        SS5      5      / S5Q:X  d   e[        [#        SS5      5      / S$Q:X  d   e[        [#        S3S45      5      / S6Q:X  d   e[        5       n[        S7S8S95       HR  n[        SS:S;5       H>  n[        UR#                  X"U-   5      5      n[        [#        X"U-   5      5      n	X:X  a  M>   e   MT     [        5       nU R                  " S S!9  U R                   " S	5        [        S<5       HK  n[        US<5       H8  n[        UR#                  X#5      5      n[        [#        X#5      5      n	X:X  a  M8   e   MM     U R                   " S/5        S= H7  u  p[        [#        X5      5      [        UR#                  X5      5      :X  a  M7   e   U R                  " S S!9  U R                   " S>5        [        U R                  5      [        [-        U R                  5      5      :X  d   e[        5       nUS   S&:X  d   e[        SS5      S:X  d   e[        [        S? 5        [        [        S@ 5        [/        SS/5      SAL d   eSB n[1        [3        USC5      5      SD:X  d   e[        [3        USCS SE95      / SFQ:X  d   e[1        [3        USCSSG95      SH:X  d   e[        [3        USCSS SI95      / SJQ:X  d   eU R                   " SK5        [        SL5      SM:X  d   e[	        SN5      SO:X  d   e[        [        SP 5        [        [        SQ 5        g s  snf s  snf )RNr   r@   r   r   r            r         rD   	   r1      r   Z   a   rC   rO   y   )>r   r   r   rT   r   rV   rX   rW   rZ      r   %   rE   +   /   5   ;   =   C   G   I   O   S   Y   r\   e   g   k   m   q                                                               rP            i  i  r   i  i  i  i  i%  r   c                      [        SS5      $ )Nr   r   r   r)   r*   r+   r,   test_generate.<locals>.<lambda>}   
    yAr*   c                      [        SS5      $ )Nr   r1   r   r)   r*   r+   r,   r   ~   s    yB/r*   rj   c                      [        S5      $ r'   r   r)   r*   r+   r,   r      r.   r*   c                      [        S5      $ r0   r   r)   r*   r+   r,   r      r2   r*   )r   rC   r   i@B )sieve_intervalTr(   )r   r   r   rT   r      r   r   r   rT   r^   )	r   r   r   rT   r   rV   rX   rW   rZ   "   )r   r   r   rT   r   rV   rX   rW   rZ   r^   r      )
rA   r   rB   rA   rB   rA   rC   rA   rU   rB   r   )
r   r   rA   r   rB   rA   rB   rA   rC   rA   i    )
r1   r   r1   r   r   r   r1   r   r1   r   )r   )
r1   r   r1   r   r1   r   r   r   r1   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                      [        S5      $ r'   r   r)   r*   r+   r,   r      s    wqzr*   c                      [        S5      $ r'   r   r)   r*   r+   r,   r      rJ   r*   Fc                     U S-  S-   S-  $ )Nr   r   3   r)   )is    r+   r,   r      s    adQh"_r*   rA   )rB   r   )values)rA   rX   #   r   r         ,   2   r   r   r   r   )nmax)r   N)r   r   )rA   rX   r   r   r   r"   i  i  ir  io  c                      [        S5      $ Nr   r   r)   r*   r+   r,   r      rJ   r*   c                      [        S5      $ )NrS   r   r)   r*   r+   r,   r      s    y}r*   )rK   r   rL   r   r   extend_to_no_listrangelenr   r3   r   list_primeranger   r   r4   r   totientranger   mobiusranger   setr   nextr   )r   	primelistr   jr   sheadtailABkxabfuncs                  r+   test_generater   \   s   ,	LLNR=AQ<1Q<1R=BQ<1Q<1R=BR=BR=B	q;;r?b   ;;r?R;;R=BRVR#...9I 3y>A%&q#i.1,-AY\1-q51AAAA1u !115q5199MMMM . '
 :./
:/0R=BRVR"---
:'(
:()00!''"+/AGGBK!Oa+?CDdQhq1(<=t23fY5k)6RSvv > D
 qwwr{IbMA$5q9A^4AHHQK=I.Cvi/C$DDDDHHYr]#=I--- : 1   Q'(B...  A&'Aq6111	LLt  B'(,<<<<  $%)9999  #$444  $%+++  $%)IIII  $%)QQQQ""1b)*.NNNN	LL""1b)*.MMMM""3-.uSRVGW2XGW!71:GW2XXXX""1a()R///""1a()aS000!!!R()-OOOO	LL!!!R()-OOOO!!$-.eDRVFW2XFW6!9FW2XXXX!!!Q'(B...!!!Q'(QC///
2q!"b(((
1a !Y...
1b!"l222
4&' ,, , , ,A2tS!q$%AQ\\!U+,AZq5)*A6M6 & "
 	A	LLt	LL3Zq#AQ\\!'(AZ%&A6M6  
 
LL Jq$%all1.@)AAAA 
LLt	LL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:;  	LLT?d"""T?d"""
:+,
:,- 3Y 3Ys   ;e0e5c                     [        SS5      b   e[        SS5      b   e[        SS5      S:X  d   e[        SS5      S:X  d   e[        SS5      S:X  d   e[        [        S 5        [        [        S 5        [        [        S	 5        [        [        S
 5        [        [        S 5        S H>  n S H5  n[        X U-   5      nXs=::  a  X-   :  a  O   e[        U5      (       a  M5   e   M@     g )NrC   r   r   r   r   c                      [        SS5      $ )Nir   r
   r)   r*   r+   r,    test_randprime.<locals>.<lambda>   s    yb1r*   c                      [        SS5      $ )Nir   r   r)   r*   r+   r,   r      s    ya0r*   c                      [        SS5      $ )NrD      r   r)   r*   r+   r,   r      s    yR0r*   c                      [        SS5      $ )Nr   r   r   r)   r*   r+   r,   r      r   r*   c                      [        SS5      $ )Nr   r   r   r)   r*   r+   r,   r      r   r*   )d   i,  i  i )r
   r   r3   r	   )r   r   ps      r+   test_randprimer      s    R###Q###Q?aQ?aQ?a
:12
:01
:01
:./
:./$(A!U#A#QU#22

22 ) %r*   c                      [        S5      S:X  d   e[        SSS9S:X  d   e[        S5      S:X  d   e[        SSS9S:X  d   e[        SSS9S:X  d   eg )Nr   r   r   )nthrB   rA   r   r)   r*   r+   test_primorialr      se    Q<1QA!###Q<1QA!###QA!###r*   c                      S[         ;   d   eS[         ;  d   eS[         ;  d   eSS-  [         ;  d   e[        [        S 5        g )Nr   g @r   r   c                  .    [         R                  " S5      $ r   )r   searchr)   r*   r+   r,   test_search.<locals>.<lambda>   s    u||Ar*   )r   r   r3   r)   r*   r+   test_searchr      sE    ::eE>>d7%
:./r*   c                     [         S   S:X  d   e[        [         SS 5      [        SS5       V s/ s H  n [         U    PM     sn :X  d   e[        [         SSS2   5      [        SSS5       V s/ s H  n [         U    PM     sn :X  d   e[        [         SS 5      / SQ:X  d   e[        [        S 5        [        [        S 5        [        [        S	 5        g s  sn f s  sn f )
Nr   r   rC   r   r   r   c                      [         S S $ )Nr   r@   r)   r*   r+   r,   "test_sieve_slice.<locals>.<lambda>  s
    uRayr*   c                      [         S   $ r'   r@   r)   r*   r+   r,   r     s    uQxr*   c                      [         SS $ )Nr   r   r@   r)   r*   r+   r,   r   	  s
    uQqzr*   )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                      / n [          H  nUS:  a    OU R                  U5        M     U [        [         SS 5      :X  d   eg )NrT   r   r   )r   appendr   )r   values     r+   test_sieve_iterr     sB    F19e  T%!*%%%%r*   c                  X    S[        [        5      ;   d   eS[        [        5      ;   d   eg )Nr   r   )reprr   r)   r*   r+   test_sieve_reprr     s&    d5k!!!d5k!!!r*   c                  v    SSK Jn   U " 5          [        S5      S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr   warns_deprecated_sympy)sympy.testing.pytestr   r   r   s    r+   *test_deprecated_ntheory_symbolic_functionsr     s'    ;		!qzQ 
"	!	!s   *
8N)%r   r   %sympy.functions.combinatorial.numbersr   r   rK   r   r   sympy.ntheoryr	   r
   r   r   r   r   r   r   r   r   r   r   sympy.ntheory.primetestr   r   r   r5   r>   rM   rQ   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*   