Función: Obtener el número primo que se localiza en la posición n

La metodologia es bastante simple, realmente es por fuerza bruta y usa los elementos más básicos del lenguaje R.

Más detalles en los comentarios.

pos_Primo <- function(n)
{
  #Verificamos que el numero dado por el usuario sea valido -> No negativos ni nulos
  if (n<=0){
    print("Error, la posición debe ser extrictamente positiva")

  } #El número dos en un caso especial y debe ser tomado por aparte, por cuestión de la lógica del algoritmo de      fuerza bruta
  else if (n==1){
    print(paste("El número primo que se encuentra en la posición ",n, "es: 2"))

  } else{
      disc=c()
      vec = c()
      #El número del limite superior es arbitrario e indica el número limite para saber si es o no primo. Atención!        Debido a que es por fuerza bruta, no es recomendable elevarlo demasiado.
      for (num in seq(3,10000))
      {
      #TRUE <-> Presencia de otros factores <-> No es primo, FALSE lo opuesto.
        disc[num-2]= FALSE
        for(i in seq(2,num-1))
          {
          #De referencia
          #print(i)
          if((num%%i)==0){
            disc[num-2]=TRUE
            break
          }
          #De referencia
          #print(disc[num-2])
        }
      #Obtenemos los números primos y los ubicamos en un vector "vec". En caso de no ser primo colocar un CERO
          if (disc[num-2]==FALSE){
          vec[num-2]=num
          }
          else{
          vec[num-2]=0
          }
      }
      #De referencia
      #print(vec)
  }
#Un nuevo vector con los números primos SIN los ceros respectando su posición
  vec_primos <- c()
  cont=1
  for (k in 1:length(vec)){
    if ((vec[k])!=0){
      vec[k] -> vec_primos[cont]
      cont = cont+1
    }
}
#De referencia
#print(vec_primos)

return(vec_primos[n-1])
}

Consideraciones para optimizar sobre este algoritmo

  1. Detectar la dimensión del número n y ajustar el número arbitrario q (en este caso, 10000) para evitar hacer operaciones innecesarias.

Importancia de dar “seguimiento” a un algoritmo

En el código se puede leer la leyenda De referencia, esto sirve para indicar operaciones importantes y evaluar en tiempo real lo que esta sucediendo sin necesidad de esperar hasta el final de la ejecución y observar el resultado. En general, es una buena práctica durantes las pruebas.