necesito ayuda para realizar un programa en Java en el que se introduzca una posición y me devuelva el número primo al que pertenece dicha posición.
Ej: si introduzco la posición 6, me devuelva el número 13;
si introduzco 2 , me devuelva 3.
No sé muy bien cómo enfocarlo.
Gracias!
Buenas otra vez. Esto es lo que he conseguido. Con esto logro que me muestre números primos hasta el número que yo introduzco pero lo único que necesito es que me muestre el único primo de la posición que yo le indico.
package numPrimosC;
import java.util.Scanner;
public class NumPrimosC{
public static void main(String[] args) {
Scanner e = new Scanner (System.in);
int desde = 2;
int hasta = 999983;
boolean esPrimo;
int cp=0;
int nb=0;
int ip=0;
int vp[]= new int[hasta];
int k=0;
System.out.println("Introduce posición: ");
nb=e.nextInt();
for (int i = desde; i <= hasta; i++) {
esPrimo = true;
for (int j = 2; j <= Math.sqrt(i) && esPrimo; j++) {
if (i % j == 0) {
esPrimo = false;
}
}
if (esPrimo && cp<nb){
esPrimo=true;
cp++;
System.out.println(i);
}
}
}
}
Mi idea es almacenar los primos que va sacando el bucle y al final visualizar el último del array. Pero no consigo almacenarlos en un array.
Creo que lo he solucionado...
package numPrimosC;
import java.util.Scanner;
public class NumPrimosC{
public static void main(String[] args) {
Scanner e = new Scanner (System.in);
int desde = 2;
int hasta = 999983;
boolean esPrimo;
int cp=0;
int nb=0;
int ip=0;
int n=0;
int k=0;
System.out.println("Introduce posición: ");
nb=e.nextInt();
int vp[]= new int[nb];
for (int i = desde; i <= hasta; i++) {
esPrimo = true;
for (int j = 2; j <= Math.sqrt(i) && esPrimo; j++) {
if (i % j == 0) {
esPrimo = false;
}
}
if (esPrimo && cp<nb){
esPrimo=true;
cp++;
k=i;
vp[n++]=k;
}if(cp>=nb){
break;
}
}System.out.println(vp[vp.length-1]);
}
}
Creo que se puede inicializar el vector con otro tamaño superior.