Como ultimo, y para comentar una variante cachonda (y posiblemente imposible a nivel físico), pero poco practica (a todos los niveles). Pero que demuestra que para optimizar en velocidad a veces has de "desoptimizar" en memoria ocupada....
// v sera un vector de booleanos
v := [true, true, true, false, true, false, true, false, false, false, true, .......................................]
EsEntero:= v[n - 1]; //tengamos en cuenta que las tablas empiezan en indice 0
Se puede tener una tabla estática de booleanos en la que cada posicion de la tabla representa si esa posición es prima. La longitud de la tabla es el rango máximo de un Integer
Esta solucion no requiere dividir ni nada parecido... eso si... requiere tiempo... para picar la tabla
(Siento esta enorme ida de olla)
¿comentarios?