Created
March 14, 2017 14:35
-
-
Save Woodsphreaker/e81e068caee110e821c4c9b375a76ddd 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
function show_primes(number) {
var prime_numbers = [];
for (var n = 0; n <= number; n++) {
if (verify_prime(n)){
prime_numbers.push(n);
}
}
return prime_numbers;
}
function verify_prime(number) {
if (number > 1) {
for (var i = 2; i < number; i++) {
if (number % i === 0) {
return false;
}
}
return true;
}
}
https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
function sieveOfEratosthenes (n) {
var primeNumbers = [...Array(n + 1).keys()];
var upperBound = Math.sqrt(n);
for (var i = 2; i < upperBound; i++) {
for (var j = i * 2; j <= n; j += i) {
delete primeNumbers[j];
}
}
return (
Object.keys(primeNumbers)
.splice(2)
.map(x => parseInt(x))
);
}
Em ES6:
const sieveOfEratosthenes = ( n ) => {
var upperBound = Math.sqrt( n )
var primeNumbers = [ ...Array(n + 1).keys() ]
for ( let i = 2; i < upperBound; i++ ) {
for ( let j = i * 2; j <= n; j += i ) {
delete primeNumbers[ j ]
}
}
return Object.keys( primeNumbers ).splice( 2 ) .map( x => parseInt( x ) )
}
var primos = [];
var gravado = [];
var number = 50; // número desejado aqui
primos.push(1);
for(var i = 0; i < number + 1; i++){
gravado = [];
for(var j = 1; j <= i; j++){
i % j == 0 ? gravado.push(j) : total = 1;
}
gravado.length == 2 ? primos.push(i) : total = 1;
}
console.log(primos);
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Muito bom
https://gist.github.com/lubien/b984b501ea2df1242df34cd5bc75b4ca