| 
	
		|  Autor | Tema: [Python] - ¿Es primo?  (Leído 14,603 veces) |  
	| 
			| 
					
						| Meta | 
 
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: 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 
								Mensajes: 10.683
								 
								Yo que tu lo pienso dos veces
								
								
								
								
								
								   | 
 
for x in [x for x in range(2,input('Valor maximo: '))if all(x%i for i in range(2,x))]:    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   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 
								Mensajes: 25
								
								
								
								
								
								   | 
 
Yo lo haria usando los operadores logicos true y false.(Tambien es cierto que es como aprendi en la guia que estoy siguiendo) #!/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 | 
 
Quizás podría hacerlo así, -aun no manejo mucho python, pero así medio aprendo- #!/usr/bin/python def primeNumber(sNumber):  sCount = 2  sState = "true"   while ( (sState == "true") and ( sCount != sNumber ) ):    if( ( sNumber % sCount )  == 0 ):      sState = "false";    sCount +=1   return sState
 |  
						| 
								|  |  
								|  |  En línea | 
 
 Te vendería mi talento por poder dormir tranquilo. |  |  |  | 
			| 
					
						| Dnk! | 
 
Pienso que asi queda mejor, haganme saber recien empiezo en python    #!/usr/bin/python def esPrimo(num):    if num < 2: return False    for i in range(2,num):        if (num%i==0):            return False    return True 
 xDnk! |  
						| 
								|  |  
								| « Última modificación:  1 Diciembre 2010, 23:25 pm por Dnk! » |  En línea | 
 
 |  |  |  | 
			| 
					
						| Novlucker 
								Ninja y 
								Colaborador
								      Desconectado 
								Mensajes: 10.683
								 
								Yo que tu lo pienso dos veces
								
								
								
								
								
								   | 
 
Dnk!, en realidad el 2 también es primo   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   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! | 
 
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 | 
 
 |  |  |  | 
			| 
					
						| pucheto 
								
								 Desconectado 
								Mensajes: 215
								
								
								
								
								
								   | 
 
import math def esPrimo_n(n,prims):	sq = math.sqrt(n)	for i in prims:		if i > sq: return True		if n%i == 0: return False	return True def esPrimo(n):	prims = [2]	for i in xrange(3,n+1,2):		if esPrimo_n(i,prims):			prims += [i]	return prims[len(prims)-1]==n 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Karcrack 
								       
								
								 Desconectado 
								Mensajes: 2.416
								
								 
								Se siente observado ¬¬'
								
								
								
								
								
								   | 
 
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   ## coding: utf-8## Criba de Eratóstenes def GetPrimes(n):	# Obtenemos el lado de la criba	nroot = int(n**0.5)	# Marcamos todos los numeros como primos	sieve = [True]*(n+1)	# El 0 y el 1 no son primos	sieve[0] = False	sieve[1] = False 	# Recorremos todos los números de 2 hasta la raíz	for i in xrange(2, nroot+1):		# Si esta marcado como primo...		if sieve[i]:			# Obtenemos la cantidad de multiplos en el rango			m = n/i - i			# Marcamos todos sus multiplos como NO primos			sieve[i*i: n+1:i] = [False] * (m+1)	# Devolvemos solo los primos del rango	return [i for i in xrange(n+1) if sieve[i]] print GetPrimes(input("Dame n:"))
 Para saber si n es primo seria asi: n = input("Dame n:")print (GetPrimes(n).count(n)==1)
 |  
						| 
								|  |  
								| « Última modificación:  4 Diciembre 2010, 14:11 pm por Karcrack » |  En línea | 
 
 |  |  |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | Calcular si un nº dado es primo PHP
 | luiggy2 | 3 | 4,666 |  13 Marzo 2009, 13:06 pm por Agente Naranja
 |  
						|   |   | Golazo que le hice a un primo en PES2010!! Foro Libre
 | Amerikano|Cls | 4 | 2,778 |  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 | 9,933 |  5 Julio 2012, 04:01 am por do-while
 |  
						|   |   | Primo.wz WarZone
 | wakamole | 1 | 2,407 |  6 Marzo 2013, 03:17 am por wakamole
 |  
						|   |   | mayor divisor primo Programación C/C++
 | mariano96 | 2 | 2,509 |  24 Febrero 2015, 02:01 am por mariano96
 |    |