2

#PlatziCodingChallenge - Dia #34 Números primos

Los primeros números primos son: 2, 3, 5, 7, 11, y 13. De esta forma podemos decir que 13 es el sexto número primo. Cuál es el 10000 número primo?

Escribe tu comentario
+ 2
Ordenar por:
1
19943Puntos

Números Primos en JavaScript y en Python

// Numeros Primos en JavaScriptfunctionnthPrimeNumber(n) {
    let primeNumbers = newArray()
    let i = 2while(primeNumbers.length < n) {
        if(primeNumbers.every(n => i % n !== 0)){
            primeNumbers.push(i)
        }
        i++
    }
    return primeNumbers[n - 1]
}

console.log([1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map(n => nthPrimeNumber(n))) // [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]console.log(nthPrimeNumber(100)) // 541console.log(nthPrimeNumber(1000)) // 7919console.time('Primo #1000')
console.log(nthPrimeNumber(10000)) // 104729console.timeEnd('Primo #1000') // 200 - 800 ms
# Números Primos en PythondefnthPrimeNumber(n):
    primeNumbers = []
    i = 2while len(primeNumbers) < n:
        isPrime = Truefor p in primeNumbers:
            if (i % p == 0):
                isPrime = Falsebreakif(isPrime):
            primeNumbers.append(i)
        i += 1return primeNumbers[-1]

print(nthPrimeNumber(100)) # 541
print(nthPrimeNumber(1000)) # 7919
print(nthPrimeNumber(10000)) # 104729
1
26494Puntos

El número primo 10,000 es 104,729.

defprime_numbers(n, memory = {}):
    number = 0
    position = 1while len(memory) < n:
        result = is_prime(number, memory)
        if result:
            memory[number] = position
            position += 1
        number += 1return memory


defis_prime(number, memory):
    count = 0if number <= 1:
        returnFalsefor i in range(1, number + 1):     
        if i == 1or i == number:
            continueif number % i == 0:
            count += 1breakif count == 0:
        returnTrueelse:
        returnFalsedefrun():

    n = int(input('Insert a number: '))
    results = prime_numbers(n)
    print(results)


if __name__ == "__main__":
    run()



1

En python 😃
El número es 104729.

primonumero=int(input('Ingresa primo numero ____ que quieras hallar:  '))
cuenta=0i=0
while cuenta<primonumero:
    cont=0i=i+1
    for j in range(1,i+1):
        if cont>2:
            break
        resto=i%jifresto==0:cont=cont+1else:
            pass
    ifcont==2:cuenta=cuenta+1#print(i)
print(i)```
1
7689Puntos

Reto:

<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Números Primos</title></head><style>
  * {
    margin: 0;
  }

  .contenedor {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100vh;
  }

  .section {
    padding: 0.25rem2rem;
  }

  .inputs {
    display: inherit;
    align-items: center;
    padding: 2rem;
  }

  .btn {
    border: 2px solid black;
    border-radius: 6px;
    cursor: pointer;
  }

  #contra {
    padding: 020px;
    width: 95%;
  }
</style><body><divclass="contenedor"><h1style="margin-bottom: 24px;">Número primos</h1><divclass="inputs"><sectionclass="section">
        Ingresa la posicion que deseas saber <inputid="limite"/></section></div><buttononclick="escribe()"class="btn">Mostrar...</button><divstyle="margin-top: 24px;"id="resultado"></div></div><script>functionescribe() {
      const limite = parseInt(document.getElementById('limite').value)
      let numeros = []
      let x = 2let posicion = 0while (posicion !== limite){
        if (primo(x)){
          numeros.push(x)
          posicion++
        }
        x++
      }
      
      functionprimo(numero) {
        for (let x = 2; x < numero; x++){
          if (numero % x === 0){
            returnfalse
          }
        }
        return numero !== 1
      }
      
      document.getElementById('resultado').innerHTML = numeros.pop()
    }
  </script></body></html>
3
7689Puntos
7 meses

El proceso se realiza en 1.7 segundos aprox.

1
30808Puntos
5 meses

No tienes que dividir el numero entre todos los enteros positivos anteriores o menores que él, con que lo hagas hasta la raiz del número ya es suficiente. (ese ajuste es probable que reduzca a la mitad el tiempo de ejecución).

Slds.

0
13595Puntos

En java:

publicclass Prime {

    publicstaticvoid calculate(int n) {
        int primeNumbers[] = newint[n];
        int i = 2;
        intcount = 1; //Simula el tamaño del array
        primeNumbers[0] = 2;

        do {
            boolean prime = true;
	    
	   //Verifica el numero actual por cada primo guardado en el array.for (int j = 0; j < count; j++) {
                if (i % primeNumbers[j] == 0) {
                    prime = false;
                }
            }
            if (prime) {
                primeNumbers[count] = i;
                count++;
            }

            i++;
        } while (count < n);

        System.out.println(primeNumbers[n - 1]);
    }
}