elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Python] - ¿Es primo?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python] - ¿Es primo?  (Leído 13,054 veces)
Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
[Python] - ¿Es primo?
« en: 1 Diciembre 2010, 04:27 am »

Buenas:

Por unos días que no he tenido tiempo estar en el ordenador por el temporal que me fastidió Internet y el Windows porque se me apagó de repente, vuelvo a por el Python.

Ejercicio:
Citar
Diseña una función es_primo que determine si un número es primo (devolviendo True) o no (devolviendo False). Diseña a continuación un procedimiento muestra_primos que reciba un número y muestre por pantalla todos los números primos entre 1 y dicho número.

- Aquí función.

- introducir un número.
- ¿El número es primo?
Verdadero.
- entonces.
Falso.

Saludo.


En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Python] - ¿Es primo?
« Respuesta #1 en: 1 Diciembre 2010, 12:42 pm »

Código
  1. for x in [x for x in range(2,input('Valor maximo: '))if all(x%i for i in range(2,x))]:
  2.    print x

Ahora quiero ver tu solución, que como sabrás, esto no es lo que pide el ejercicio exactamente

¿Te has planteado releer el libro con el que estas aprendiendo Python? Porque tengo la ligera sospecha de que aún no has aprendido nada :silbar:

Saludos


« Última modificación: 1 Diciembre 2010, 13:30 pm por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Ricardo95

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: [Python] - ¿Es primo?
« Respuesta #2 en: 1 Diciembre 2010, 19:37 pm »

Yo lo haria usando los operadores logicos true y false.(Tambien es cierto que es como aprendi en la guia que estoy siguiendo)


Código:
#!/usr/bin/env python

n=int(raw_input("Dime un numero")

puede_primo = True

for divisor in range(2, n):
   if n % divisor == 0:
      puede_primo = False

if puede_primo:
   print ’El numero’, n, ’es primo’

else:
   print ’El numero’, n, ’no es primo’
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: [Python] - ¿Es primo?
« Respuesta #3 en: 1 Diciembre 2010, 22:05 pm »

Quizás podría hacerlo así, -aun no manejo mucho python, pero así medio aprendo-
Código
  1. #!/usr/bin/python
  2.  
  3. def primeNumber(sNumber):
  4.  sCount = 2
  5.  sState = "true"
  6.  
  7.  while ( (sState == "true") and ( sCount != sNumber ) ):
  8.    if( ( sNumber % sCount )  == 0 ):
  9.      sState = "false";
  10.    sCount +=1
  11.  
  12.  return sState
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Dnk!

Desconectado Desconectado

Mensajes: 38



Ver Perfil WWW
Re: [Python] - ¿Es primo?
« Respuesta #4 en: 1 Diciembre 2010, 22:32 pm »

Pienso que asi queda mejor, haganme saber recien empiezo en python  :-*

Código
  1. #!/usr/bin/python
  2.  
  3. def esPrimo(num):
  4.    if num < 2: return False
  5.    for i in range(2,num):
  6.        if (num%i==0):
  7.            return False
  8.    return True
  9.  

xDnk!
« Última modificación: 1 Diciembre 2010, 23:25 pm por Dnk! » En línea




Comentar es agradecer.
Visita Mi Blob
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Python] - ¿Es primo?
« Respuesta #5 en: 1 Diciembre 2010, 22:51 pm »

Dnk!, en realidad el 2 también es primo :silbar:

Por otra parte, esos métodos (incluído el mio que imprime los primos entre 1 y n) efectivamente son válidos, pero no del todo eficientes :P

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Dnk!

Desconectado Desconectado

Mensajes: 38



Ver Perfil WWW
Re: [Python] - ¿Es primo?
« Respuesta #6 en: 1 Diciembre 2010, 23:26 pm »

Citar
Dnk!, en realidad el 2 también es primo

Ups, pensaba que no. Ajam es verdad, esa parte me la he saltado, todo por las prisas xD.
En línea




Comentar es agradecer.
Visita Mi Blob
pucheto

Desconectado Desconectado

Mensajes: 215


Ver Perfil
Re: [Python] - ¿Es primo?
« Respuesta #7 en: 2 Diciembre 2010, 03:05 am »

Código
  1. import math
  2.  
  3. def esPrimo_n(n,prims):
  4. sq = math.sqrt(n)
  5. for i in prims:
  6. if i > sq: return True
  7. if n%i == 0: return False
  8. return True
  9.  
  10. def esPrimo(n):
  11. prims = [2]
  12. for i in xrange(3,n+1,2):
  13. if esPrimo_n(i,prims):
  14. prims += [i]
  15. return prims[len(prims)-1]==n
  16.  
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [Python] - ¿Es primo?
« Respuesta #8 en: 4 Diciembre 2010, 14:07 pm »

Ya que sale la pregunta, y a mi me encantan los numeros primos aqui esta la forma mas rapida de mostrar la cantidad de primos hasta n :)
Código
  1. ## coding: utf-8
  2. ## Criba de Eratóstenes
  3.  
  4. def GetPrimes(n):
  5. # Obtenemos el lado de la criba
  6. nroot = int(n**0.5)
  7. # Marcamos todos los numeros como primos
  8. sieve = [True]*(n+1)
  9. # El 0 y el 1 no son primos
  10. sieve[0] = False
  11. sieve[1] = False
  12.  
  13. # Recorremos todos los números de 2 hasta la raíz
  14. for i in xrange(2, nroot+1):
  15. # Si esta marcado como primo...
  16. if sieve[i]:
  17. # Obtenemos la cantidad de multiplos en el rango
  18. m = n/i - i
  19. # Marcamos todos sus multiplos como NO primos
  20. sieve[i*i: n+1:i] = [False] * (m+1)
  21. # Devolvemos solo los primos del rango
  22. return [i for i in xrange(n+1) if sieve[i]]
  23.  
  24. print GetPrimes(input("Dame n:"))

Para saber si n es primo seria asi:
Código
  1. n = input("Dame n:")
  2. print (GetPrimes(n).count(n)==1)
« Última modificación: 4 Diciembre 2010, 14:11 pm por Karcrack » En línea

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: [Python] - ¿Es primo?
« Respuesta #9 en: 6 Diciembre 2010, 06:56 am »

:xD publique esa Criba en un problema que puso Novlucker en la zona de ejercicios.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Calcular si un nº dado es primo
PHP
luiggy2 3 4,272 Último mensaje 13 Marzo 2009, 13:06 pm
por Agente Naranja
Golazo que le hice a un primo en PES2010!!
Foro Libre
Amerikano|Cls 4 2,322 Último mensaje 25 Junio 2010, 14:06 pm
por SpuTniK.
Factor primo más grande de un número muy largo
Programación C/C++
DickGumshoe 9 8,665 Último mensaje 5 Julio 2012, 04:01 am
por do-while
Primo.wz
WarZone
wakamole 1 2,023 Último mensaje 6 Marzo 2013, 03:17 am
por wakamole
mayor divisor primo
Programación C/C++
mariano96 2 1,826 Último mensaje 24 Febrero 2015, 02:01 am
por mariano96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines