Acciones

2010 Ejercicio 5: Buscar el número primo que ocupa la posición 10001 en la secuencia de números primos

De Software Libre para la Enseñanza y el Aprendizaje de las Matemáticas (2010-11)

Inserte aquí texto sin formatoInserte aquí texto sin formato== Enunciado == Buscar el número primo que ocupa la posición 10001 en la secuencia de números primos.

Solución 1 (en wxMaxima 0.84)

Una solución usando el lenguaje de cálculo simbólico Máxima es:

 (i%1) cont: 0$
       for i: 1 step 1 while cont<10001 do 
       (
          if (primep(i) = true) then(
          cont: cont+1),
          if (cont = 10001) then(
            print("El Número primo en la posición 10001 es: ",i))
       );
 (o%1)  El Número primo en la posición 10001 es: 104743
        done


Solución 2 (en Groovy)

A igual que mis compañeros en otros ejercicios, voy a utilizar el lenguaje de programación Groovy. Se probar el script en la página http://groovyconsole.appspot.com/

Solución: 104743


def es_primo(int num) {

      if( num == 1 )
                 return false;
             else if( num < 4 )
                  return true; 
              
              int m = (int) Math.sqrt(num);
 for (int i = 2; i <= m; i++) {
  if (num % i == 0)
   return false;
 }

return true; }

def numero=1 def primo =1 while(numero < 10001){

   if(es_primo(primo)){
       numero = numero +1;
   }

primo = primo +1; }

println(primo)