Java - Programa que calcule los 4 primeros números primos de Mersenne

   
Vista:

Programa que calcule los 4 primeros números primos de Mersenne

Publicado por Estudiante (1 intervención) el 08/09/2015 16:05:17
Hola. No sé hacer este programa, que dice así:

Se le llama primo de Mersenne a un número primo de la forma 2^n - 1 . Haz un programa que de los cuatro primeros números primos de Mersenne.




He hecho esto pero no muestra lo que pide el ejercicio.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package org.pc.sesion16;
 
public class primoMersenne {
 
	public static boolean esPrimo(double n) {
 
		int divisor = 3;
		if (n % 2 == 0 && n != 2) {
			return false;
		} else {
			while (divisor <= Math.sqrt(n)) {
				if (n % divisor == 0)
					return false;
				divisor += 2;
 
			}
 
		}
 
		return true;
	}
 
	public static void main(String[] args) {
 
		// supongamos que queremos los cuatro primeros
		// un primo es de Mersenne si es de la forma 2^n -1
		System.out
				.println("Listado de los cuatro primeros primos de Mersenne:");
		int n = 1;
		for (int i = 0; i < 4; n++) {
			if (esPrimo(Math.pow(2, n) - 1)) {
				System.out.println(Math.pow(2, n) - 1);
				i++;
			}
		}
 
	}
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Programa que calcule los 4 primeros números primos de Mersenne

Publicado por Tom (909 intervenciones) el 08/09/2015 18:49:34
Aunque no tenga nada que ver con java, sino con matemáticas (que deberías repasar, hay entradas instructivas en la wikipedia, por ejemplo), te recomendaría _no_ hacer el bucle de 1 a 4 ... porque n debe ser primo.

Así que deberías ir generando números primos, en orden, asignándolos a n y comprobar si el resultado de la operación pow es primo o no ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar