Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: vaness182 en 28 Octubre 2015, 22:13 pm



Título: ayuda con programacion python
Publicado por: vaness182 en 28 Octubre 2015, 22:13 pm
necesito ayuda con este ejercicio pero estoy super perdida


Cree un programa en Python 3.4 que permita calcular el cuadrado de los números primos que se encuentran en un rango definido por el usuario mediante el ingreso de dos números de manera independiente.

Nota: recuerde que un número es primo si y solo si es divisible únicamente por sí mismo y por 1.

El programa debe mostrar como resultado exclusivamente la lista de los cuadrados de los números primos que se encuentran en el rango definido por el usuario, no debe contener letras ni enunciados que lo acompañen.

muchas gracias




ahhh el codigo lo llevo asi


####




def prim(min, max):
    lstprim=[]
    for num in range (min, max+1, 1):
        ndiv=0
        for k in range (1, num+1, 1):
            if num % k ==0:
                ndiv = ndiv+1
                if ndiv>=3:
                    break
        if ndiv ==2:
            lstprim.append(num)
    return lstprim
linf = int(input())
lsup = int(input())
print(prim(linf,lsup))


y=prim(linf,lsup)
print(y)




###


pero ahora no se como tomar esa lista y elevar al cuadrado cada elemento


Título: Re: ayuda con programacion python
Publicado por: tincopasan en 29 Octubre 2015, 09:57 am
nunca entendí porque cuando enseñan python ponen estos enunciados tan malos!
menos mal que soy autodidacta!
y ¿por qué no usan variables descriptivas para el que lee sea más facil saber que quieren hacer?
lo haría así:
Código
  1. import math
  2. def isPrimo(num):
  3. for i in range(2,int(math.sqrt(num)+1)):
  4. if (num % i == 0):
  5. return False
  6. return True
  7. def main():
  8. inicio=int(input(" "))
  9. final=int(input(" "))+1
  10. lista=[]
  11. for i in range(inicio,final):
  12. if isPrimo(i):
  13. i=i**2
  14. lista.append(i)
  15.  
  16. print(lista)
  17.  
  18. main()
  19.  
nunca dijiste si podés usar módulos, lo hago por velocidad y reducción de código


Título: Re: ayuda con programacion python
Publicado por: Slava_TZD en 29 Octubre 2015, 12:56 pm
Código
  1.        if ndiv == 2:
  2.            lstprim.append(num**2)


Título: Re: ayuda con programacion python
Publicado por: vaness182 en 30 Octubre 2015, 03:36 am
def prim(min, max):
    lstprim=[]
    for num in range (min, max+1, 1):
        ndiv=0
        for k in range (1, num+1, 1):
            if num % k ==0:
                ndiv = ndiv+1
                if ndiv>=3:
                    break
        if ndiv ==2:
            lstprim.append(num**2)
    return lstprim
n1 = int(input())
n2 = int(input())
n3=0
if(n1>n2):
    print(prim(n2,n1))
else:
    print(prim(n1,n2))


#####
lo entregue asi
ya que si el primer numero era mayor que el segundo saldria vacio y pues salia error y le coloque esa condicion y salio bn


muchas gracias a todos :]