LeetCode 2523. Closest Prime Numbers in Range in F#
URL
Closest Prime Numbers in Range - LeetCode
Code
let primes (left: int) (right: int) : bool[] =
let rec fillPrimes n i limit (ps: bool[]) =
let index = n * i
if index > limit then
ps
else
ps.[index] <- false
fillPrimes n (i + 1) limit ps
let rec primes' n (ps: bool[]) =
if n > right then
ps
else if not ps.[n] then
primes' (n + 1) ps
else
let ps = fillPrimes n 2 right ps
primes' (n + 1) ps
let ps = Array.init (right + 1) (fun _ -> true)
ps.[0] <- false
ps.[1] <- false
primes' 2 ps