Python - numeros primos de mersenne

 
Vista:
sin imagen de perfil
Val: 4
Ha disminuido su posición en 21 puestos en Python (en relación al último mes)
Gráfica de Python

numeros primos de mersenne

Publicado por santiago (2 intervenciones) el 09/10/2020 22:16:12
hola amigos necesito ayuda para hacer una funcion que me de por resultado true or false de los numeros primos de mersenne los cuales son aquellos representados como( 2 ´n − 1)
siendo n algún numero entero positivo. Por ejemplo, 31 es un numero primo de Mersenne
ya que es primo y puede escribirse como 2**5 − 1, siendo n = 5.

PORFAVOR !!!!!!!
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 Anikollaste
Val: 570
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

numeros primos de mersenne

Publicado por Anikollaste (118 intervenciones) el 10/10/2020 19:04:45
He probado este código y parece que funciona bien.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import math
 
def es_primo(numero):
    for i in range(2,numero):
        if (numero%i)==0:
            return False
    return numero
 
def es_mamersenne(func):
    for i in range(2,numero+1):
        potencia=(math.pow(2,i))
        if (potencia-1) == numero:
            print('El número {} es Mersenne'.format(numero))
            break
    else:
        print('El número {} es primo pero no Mersenne'.format(numero))
 
numero=int(input('Introduce un número: '))
es_mamersenne(es_primo(numero))
P.S. He tomado prestado parte del código:https://www.lawebdelprogramador.com/codigo/Python/2413-Determinar-si-un-numero-es-primo-o-no.html
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 Anikollaste
Val: 570
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

numeros primos de mersenne

Publicado por Anikollaste (118 intervenciones) el 10/10/2020 19:39:17
Pido perdón, con las prisas me he olvidado de los números no primos, aquí dejo el código corregido.
No he probado todos los números Mersenne
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def es_mamersenne(num):
    primo=True
 
    for i in range(2,numero):
        if (numero%i)==0:
            primo=False
            print('El número no es primo')
            break
 
    if primo==True:
        for i in range(2,numero+1):
            potencia=(math.pow(2,i))
 
            if (potencia-1) == numero:
                print('El número {} es Mersenne'.format(numero))
                break
 
        else:
            print('El número {} es primo pero no Mersenne'.format(numero))
 
numero=int(input('Introduce un número: '))
es_mamersenne(numero)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar