Skip to content

Instantly share code, notes, and snippets.

@Woodsphreaker
Forked from lubien/primeNumbers.js
Created March 14, 2017 17:42
Show Gist options
  • Save Woodsphreaker/348264f775697a1d7b8bea500e017546 to your computer and use it in GitHub Desktop.
Save Woodsphreaker/348264f775697a1d7b8bea500e017546 to your computer and use it in GitHub Desktop.
Dado um número aleatório, retornar todos os números PRIMOS entre 0 e o número escolhido
const
range = x => y =>
Array.from({length: y - x})
.map((_, i) => x + i)
, lt = y => x =>
x < y
, takeWhile = pred => it => {
let val, xs = []
while(pred(val = it.next().value)) {
xs.push(val)
}
return xs
}
, some = pred => xs =>
xs.some(pred)
, not = prop =>
!prop
, divides = x => y =>
x % y === 0
, prime = x =>
not(some(divides(x))(range(2)(x)))
, primes = function * (n) {
let i = 2
do { if (prime(i)) { yield i } } while (i++)
}
takeWhile(lt(100))(primes())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment