Matlab - Número de Mersenne

 
Vista:
sin imagen de perfil

Número de Mersenne

Publicado por Ruben (8 intervenciones) el 08/06/2017 18:51:34
Se dice que un número M es un número de Mersenne si es una unidad menor que una potencia de 2, es decir M_{n} = 2^{n} - 1 .

Un número primo de Mersenne es un número de Mersenne que es primo, es decir, es un número primo que cumple M_{n} = 2^{n} - 1 . Es una condición necesaria, pero no suficiente, que n sea primo para que M_{n} lo sea.

Se pide implementar la funcion Matlab [primosMer] = primosMersenne(x) que devuelva los x primeros números primos de Mersenne que existen. Por ejemplo, para x = 3 debe devolver 3, 7 y 31.

Ayuda: Se puede usar la función Matlab isprime(x) que nos devuelve si es cierto o no que x es primo.
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
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.695
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Número de Mersenne

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 08/06/2017 19:06:52
1
2
3
4
5
6
7
8
9
10
11
function [primosMer] = primosMersenne(x)
s=0;
k=2;
primosMer=zeros(1,x);
while s~=x
    if isprime(k) && isprime(2^k-1)
        s=s+1;
        primosMer(s)=2^k-1;
    end
    k=k+1;
end


saludos
https://www.facebook.com/royethmatlab/
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 8.059
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Número de Mersenne

Publicado por JOSE JEREMIAS CABALLERO (5779 intervenciones) el 09/06/2017 15:10:53
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function  primosMer= primosMersenne(x)
 if nargin==0
    x=2;
 end
n=1;
k=1;
while k<=x
    m=2^n-1;
    if isprime(m) && isprime(n)
        M(k)=m;
        k=k+1;
    end
          n=n+1;
end
primosMer=M;

1
2
3
4
5
6
7
8
9
10
11
12
13
>> primosMer= primosMersenne
primosMer =
     3     7
>> primosMer= primosMersenne(3)
primosMer =
     3     7    31
>> primosMer= primosMersenne(5)
primosMer =
           3           7          31         127        8191
>> primosMer= primosMersenne(7)
primosMer =
 
      3           7          31         127        8191      131071    524287

http://matematica.50webs.com/primos-de-mersenne.html

Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero/
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