Skip to content

Instantly share code, notes, and snippets.

@Woodsphreaker
Created March 14, 2017 14:35
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Woodsphreaker/e81e068caee110e821c4c9b375a76ddd to your computer and use it in GitHub Desktop.
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
"use strict";
const divisors = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const max = Math.max.apply(null, divisors);
const base = (num) => num > max ? [].concat(divisors, num) : divisors;
const numbers = (num) => [...Array(num).keys()];
const numberTest = (num) => base(num).map((_a) => num % _a === 0).filter(_a => _a === true);
const prime = (num) => numbers(num).filter(_a => numberTest(_a).length === 2);
console.log(prime(100)); // [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
@lubien
Copy link

lubien commented Mar 14, 2017

@beatorizu
Copy link

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;
  }
}

@ihavenonickname
Copy link

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))
    );
}

@suissa
Copy link

suissa commented Mar 19, 2017

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 ) )
}

@akinncar
Copy link

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