Python - Ayuda con números primos

 
Vista:
Imágen de perfil de César
Val: 18
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con números primos

Publicado por César (9 intervenciones) el 22/05/2020 07:45:17
Buen día compañeros, necesito de su orientación para este programa que me piden en la escuela, no se cómo plasmarlo en código y nuestro profesor se rehúsa a explicarnos, sólo nos dijo que podemos usar cualquier método para resolverlo, siempre y cuando podamos explicárselo, podrían ayudarme?

Problema
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
sin imagen de perfil
Val: 28
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con números primos

Publicado por Roberto (9 intervenciones) el 22/05/2020 16:40:19
yo tengo un programa para determinar si un numero es la suma de 2 cuadrados, quizás esta rutina te sirva como parte del programa.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#Programa para determinar si un número es la suma de 2 cuadrados
#Elaborado en Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06)
num = int(input("introduzca un número: "))
var = 1
war = 0
contador = 0
while war>=0 :
    war = num - var*var
    if war  > 0:
        kar = war**(1/2)
        mar = round(kar)
        nar = kar - mar
        if -0.00001<nar<0.00001 :
            print(round(kar),var)
            contador += 1
    var += 1
if contador == 0:
    print("el número no es la suma de 2 cuadrados")
else :
    print("el número es la suma de 2 cuadrados")
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
Imágen de perfil de César
Val: 18
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con números primos

Publicado por César (9 intervenciones) el 22/05/2020 19:37:54
Muchas gracias Roberto! :D
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 César
Val: 18
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con números primos

Publicado por César (9 intervenciones) el 22/05/2020 19:59:32
Disculpa la molestia, cómo va la sangría(o tabulación) del código?
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
sin imagen de perfil
Val: 28
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con números primos

Publicado por Roberto (9 intervenciones) el 22/05/2020 18:00:14
he puesto un programa para números impares y el usuario introduce el rango desde hasta

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
print(" Encontrar los números impares que son la suma de 2 cuadrados ")
print("Introduzca el rango ")
rang1 = int(input("desde: "))
rang2 = int(input("hasta: "))
 
while rang1 <= rang2:
    num = rang1
    contador = 0
    var = 1
    war = 0
    while war>=0 :
        war = num - var*var
        if war  > 0:
            kar = war**(1/2)
            mar = round(kar)
            nar = kar - mar
            if -0.00001<nar<0.00001 :
                contador += 1
                sal = var # factor 1 encontrado
                ral = mar # factor 2 encontrado
                numero = sal**2 + ral**2
        var += 1
    if contador > 0 and num%2 != 0:
        print("el número %d es la suma de 2 cuadrados que resulta de (%d)²+(%d)²"%(numero,sal,ral))
    rang1 += 1
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
sin imagen de perfil
Val: 28
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con números primos

Publicado por Roberto (9 intervenciones) el 22/05/2020 20:22:44
lo he mejorado intentaré enviartelo en rar por aquí

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
print(" Encontrar los números impares que son la suma de 2 cuadrados ")
print()
print("Introduzca el rango ")
rang1 = int(input("Desde: "))
rang2 = int(input("Hasta: "))
valor1 = rang1
print()
cuenta_impares = 0
#num = var1^2 + var2^2
#se despeja var2^2 = num - var1^2
#valor = var2^2
while rang1 <= rang2:
    contador = 0
    num = rang1
    var1 = 1
    valor = 0
    while valor>=0 :
        valor = num - var1*var1
        if valor  > 0:
            var2 = valor**(1/2) # se halla la variable 2
            redondeo = round(var2) # se redondea la variable 2
            diferencia = var2 - redondeo
            if diferencia == 0 :
                contador += 1
                factor1 = var1 # factor 1 encontrado
                factor2 = redondeo # factor 2 encontrado
                numero = factor1**2 + factor2**2 # compare con num = var1^2 + var2^2
        var1 += 1
    if contador > 0 and num%2!=0: # no interesan los números pares
        cuenta_impares +=1
        print("%d resulta de (%d)²+(%d)²"%(numero,factor1,factor2))
    rang1 += 1
print()
print("En el rango (%d,%d)se ha encontrado %d números"%(valor1,rang2,cuenta_impares))
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
sin imagen de perfil
Val: 28
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con números primos

Publicado por Roberto (9 intervenciones) el 22/05/2020 21:11:10
El programa sirve para encontrar los números impares que son la suma de 2 cuadrados pero, en la compilación en el rango () obtuve 25 45 65 85 y estos números cumplen con el objetivo de mi programa pero no son primos. Así que hay que buscar otro algoritmo para tu programa, sin embargo yo cambie

if contador > 0 and num%2!=0

por

if contador > 0 and num%2!=0 and num%5!=0:

y eliminé esos números que son múltiplos de 5

no obstante 5 es un numero primo, vaya dilema. Así que hay mas lógicas para este programa

ahora he aplicado esta lOgica y ha mejorado un poco la cosa

1
2
3
4
5
6
if contador > 0 and num%2!=0 and num%5!=0: # no interesan los números pares
    cuenta_impares +=1
    print("%d resulta de (%d)²+(%d)²"%(numero,factor1,factor2))
if contador > 0 and num == 5: #el 5 si es un numero primo
    cuenta_impares +=1
    print("%d resulta de (%d)²+(%d)²"%(numero,factor1,factor2))
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