Manually applied Jens Axel's patch to add `random-prime'
This commit is contained in:
parent
e655e97a83
commit
68af24780d
|
@ -12,6 +12,7 @@
|
|||
|
||||
; primes
|
||||
nth-prime
|
||||
random-prime
|
||||
next-prime untyped-next-prime
|
||||
next-primes
|
||||
prev-prime untyped-prev-prime
|
||||
|
@ -286,6 +287,14 @@
|
|||
(for/fold: ([p : Prime 2]) ([m (in-range n)])
|
||||
(next-prime p))]))
|
||||
|
||||
(: random-prime : Z -> Prime)
|
||||
(define (random-prime n)
|
||||
(when (<= n 2)
|
||||
(raise-argument-error 'random-prime "Natural > 2" n))
|
||||
(define p (random-natural n))
|
||||
(if (prime? p)
|
||||
p
|
||||
(random-prime n)))
|
||||
|
||||
;;;
|
||||
;;; FACTORIZATION
|
||||
|
|
|
@ -304,6 +304,18 @@ Returns the @racket[n]th positive prime; @racket[n] must be nonnegative.
|
|||
(nth-prime 2)]
|
||||
}
|
||||
|
||||
@defproc[(random-prime [n Integer]) Natural]{
|
||||
Returns a random prime smaller than @racket[n], which must be greater than @racket[2].
|
||||
|
||||
The function @racket[random-prime] picks random numbers
|
||||
below @racket[n] until a prime is found.
|
||||
|
||||
@interaction[#:eval untyped-eval
|
||||
(random-prime 10)
|
||||
(random-prime 10)
|
||||
(random-prime 10)]
|
||||
}
|
||||
|
||||
@defproc[(next-prime [z Integer]) Integer]{
|
||||
Returns the first prime larger than @racket[z].
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user