Skip to content

Instantly share code, notes, and snippets.

@amirrajan
Last active December 29, 2016 23:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amirrajan/3da3b77e2fce98a9493cc2de7236322b to your computer and use it in GitHub Desktop.
Save amirrajan/3da3b77e2fce98a9493cc2de7236322b to your computer and use it in GitHub Desktop.
//with mutation
let Primes number =
let mutable factors = []
let mutable n, factor = number, 2
while n > 1 do
if n % factor = 0 then
factors <- List.append factors [factor]
n <- n / factor
else factor <- factor + 1
factors
//without mutation
let Primes number =
let rec factorsOf number factor accumulator =
if number > 1 && number % factor = 0 then
factorsOf (number / factor) (factor) (List.append accumulator [factor])
else if number > 1 then
factorsOf (number) (factor + 1) (accumulator)
else accumulator
factorsOf number 2 []
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment