<s> from sympy import Sieve , sieve <EOL> from sympy . core . compatibility import range <EOL> from sympy . ntheory import isprime , totient , randprime , nextprime , prevprime , primerange , primepi , prime , primorial <EOL> from sympy . ntheory . generate import cycle_length <EOL> from sympy . ntheory . primetest import mr <EOL> from sympy . utilities . pytest import raises <EOL> def test_prime ( ) : <EOL> assert prime ( <NUM_LIT:1> ) == <NUM_LIT:2> <EOL> assert prime ( <NUM_LIT:2> ) == <NUM_LIT:3> <EOL> assert prime ( <NUM_LIT:5> ) == <NUM_LIT:11> <EOL> assert prime ( <NUM_LIT:11> ) == <NUM_LIT> <EOL> assert prime ( <NUM_LIT> ) == <NUM_LIT> <EOL> assert prime ( <NUM_LIT> ) == <NUM_LIT> <EOL> assert prime ( <NUM_LIT> ) == <NUM_LIT> <EOL> assert prime ( <NUM_LIT> ) == <NUM_LIT> <EOL> assert prime ( <NUM_LIT> ) == <NUM_LIT> <EOL> assert prime ( <NUM_LIT> ) == <NUM_LIT> <EOL> assert prime ( <NUM_LIT> ) == <NUM_LIT> <EOL> raises ( ValueError , lambda : prime ( <NUM_LIT:0> ) ) <EOL> def test_primepi ( ) : <EOL> assert primepi ( <NUM_LIT:1> ) == <NUM_LIT:0> <EOL> assert primepi ( <NUM_LIT:2> ) == <NUM_LIT:1> <EOL> assert primepi ( <NUM_LIT:5> ) == <NUM_LIT:3> <EOL> assert primepi ( <NUM_LIT:11> ) == <NUM_LIT:5> <EOL> assert primepi ( <NUM_LIT> ) == <NUM_LIT:16> <EOL> assert primepi ( <NUM_LIT> ) == <NUM_LIT> <EOL> assert primepi ( <NUM_LIT> ) == <NUM_LIT> <EOL> assert primepi ( <NUM_LIT> ) == <NUM_LIT> <EOL> assert primepi ( <NUM_LIT> ) == <NUM_LIT> <EOL> assert primepi ( <NUM_LIT> ) == <NUM_LIT> <EOL> assert primepi ( <NUM_LIT> ) == <NUM_LIT> <EOL> assert primepi ( <NUM_LIT:10> ** <NUM_LIT:8> ) == <NUM_LIT> <EOL> assert primepi ( <NUM_LIT> ) == <NUM_LIT> <EOL> assert primepi ( <NUM_LIT> ) == <NUM_LIT> <EOL> def test_generate ( ) : <EOL> assert nextprime ( - <NUM_LIT:4> ) == <NUM_LIT:2> <EOL> assert nextprime ( <NUM_LIT:2> ) == <NUM_LIT:3> <EOL> assert nextprime ( <NUM_LIT:5> ) == <NUM_LIT:7> <EOL> assert nextprime ( <NUM_LIT:12> ) == <NUM_LIT> <EOL> assert nextprime ( <NUM_LIT> ) == <NUM_LIT> <EOL> assert nextprime ( <NUM_LIT:10> ** <NUM_LIT> ) == ( <NUM_LIT:10> ** <NUM_LIT> + <NUM_LIT> ) <EOL> assert prevprime ( <NUM_LIT:3> ) == <NUM_LIT:2> <EOL> assert prevprime ( <NUM_LIT:7> ) == <NUM_LIT:5> <EOL> assert prevprime ( <NUM_LIT> ) == <NUM_LIT:11> <EOL> assert prevprime ( <NUM_LIT> ) == <NUM_LIT> <EOL> assert prevprime ( <NUM_LIT:10> ** <NUM_LIT> ) == ( <NUM_LIT:10> ** <NUM_LIT> - <NUM_LIT> ) <EOL> assert list ( primerange ( <NUM_LIT:2> , <NUM_LIT:7> ) ) == [ <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:5> ] <EOL> assert list ( primerange ( <NUM_LIT:2> , <NUM_LIT:10> ) ) == [ <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:5> , <NUM_LIT:7> ] <EOL> assert list ( primerange ( <NUM_LIT> , <NUM_LIT> ) ) == [ <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] <EOL> s = Sieve ( ) <EOL> for i in range ( <NUM_LIT:30> , <NUM_LIT> , <NUM_LIT> ) : <EOL> for j in range ( <NUM_LIT:2> , <NUM_LIT> , <NUM_LIT> ) : <EOL> A = list ( s . primerange ( i , i + j ) ) <EOL> B = list ( primerange ( i , i + j ) ) <EOL> assert A == B <EOL> s = Sieve ( ) <EOL> assert s [ <NUM_LIT:10> ] == <NUM_LIT> <EOL> assert nextprime ( <NUM_LIT:2> , <NUM_LIT:2> ) == <NUM_LIT:5> <EOL> raises ( ValueError , lambda : totient ( <NUM_LIT:0> ) ) <EOL> raises ( ValueError , lambda : primorial ( <NUM_LIT:0> ) ) <EOL> assert mr ( <NUM_LIT:1> , [ <NUM_LIT:2> ] ) is False <EOL> func = lambda i : ( i ** <NUM_LIT:2> + <NUM_LIT:1> ) % <NUM_LIT> <EOL> assert next ( cycle_length ( func , <NUM_LIT:4> ) ) == ( <NUM_LIT:6> , <NUM_LIT:2> ) <EOL> assert list ( cycle_length ( func , <NUM_LIT:4> , values = True ) ) == [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:2> , <NUM_LIT:5> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:50> , <NUM_LIT:2> , <NUM_LIT:5> , <NUM_LIT> , <NUM_LIT> ] <EOL> assert next ( cycle_length ( func , <NUM_LIT:4> , nmax = <NUM_LIT:5> ) ) == ( <NUM_LIT:5> , None ) <EOL> assert list ( cycle_length ( func , <NUM_LIT:4> , nmax = <NUM_LIT:5> , values = True ) ) == [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:2> , <NUM_LIT:5> , <NUM_LIT> ] <EOL> def test_randprime ( ) : <EOL> import random <EOL> random . seed ( <NUM_LIT> ) <EOL> assert randprime ( <NUM_LIT:2> , <NUM_LIT:3> ) == <NUM_LIT:2> <EOL> assert randprime ( <NUM_LIT:1> , <NUM_LIT:3> ) == <NUM_LIT:2> <EOL> assert randprime ( <NUM_LIT:3> , <NUM_LIT:5> ) == <NUM_LIT:3> <EOL> raises ( ValueError , lambda : randprime ( <NUM_LIT:20> , <NUM_LIT> ) ) <EOL> for a in [ <NUM_LIT:100> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] : <EOL> for b in [ <NUM_LIT:100> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] : <EOL> p = randprime ( a , a + b ) <EOL> assert a <= p < ( a + b ) and isprime ( p ) <EOL> def test_primorial ( ) : <EOL> assert primorial ( <NUM_LIT:1> ) == <NUM_LIT:2> <EOL> assert primorial ( <NUM_LIT:1> , nth = <NUM_LIT:0> ) == <NUM_LIT:1> <EOL> assert primorial ( <NUM_LIT:2> ) == <NUM_LIT:6> <EOL> assert primorial ( <NUM_LIT:2> , nth = <NUM_LIT:0> ) == <NUM_LIT:2> <EOL> assert primorial ( <NUM_LIT:4> , nth = <NUM_LIT:0> ) == <NUM_LIT:6> <EOL> def test_search ( ) : <EOL> assert <NUM_LIT:2> in sieve <EOL> assert <NUM_LIT> not in sieve <EOL> assert <NUM_LIT:1> not in sieve <EOL> assert <NUM_LIT:2> ** <NUM_LIT:1000> not in sieve <EOL> raises ( ValueError , lambda : sieve . search ( <NUM_LIT:1> ) ) <EOL> def test_sieve_slice ( ) : <EOL> assert sieve [ <NUM_LIT:5> ] == <NUM_LIT:11> <EOL> assert list ( sieve [ <NUM_LIT:5> : <NUM_LIT:10> ] ) == [ sieve [ x ] for x in range ( <NUM_LIT:5> , <NUM_LIT:10> ) ] <EOL> assert list ( sieve [ <NUM_LIT:5> : <NUM_LIT:10> : <NUM_LIT:2> ] ) == [ sieve [ x ] for x in range ( <NUM_LIT:5> , <NUM_LIT:10> , <NUM_LIT:2> ) ] </s>
