[pyar] Soy novato y tengo dudas con los bucles en python.

Francisco Palm francisco.palm en gmail.com
Lun Nov 21 14:17:03 ART 2011


Creo que se están ahogando en un vaso de agua.

El tema es que en Python cuando se hace

--->   for k in xrange(2,int( math.sqrt(n))):

xrange recorre desde 2 hasta int(math.sqrt(n)) - 1

Por eso hay que sumarle el uno, para que compruebe también el valor
int(math.sqrt(n)) el cual de otra forma quedaría excluido

Saludos

F. Palm

2011/11/21 Walter R. Ojeda Valiente <wojedav en gmail.com>:
> No Adrián, no se trata aquí de un cuadrado perfecto, sino de los divisores
> necesarios para descubrir si un número es primo o no. Puedes hacer la
> prueba, toma cualquier número y halla todos sus divisores, verás que SIEMPRE
> para obtenerlo como resultado al menos uno de los factores es menor o igual
> que la raíz cuadrada de ese número.
>
> Tomemos por ejemplo el número 32, su raíz cuadrada es 5 y algo, la
> redondeamos en 5 porque los decimales no nos interesan. Los factores de 32
> son:
> 2 * 16     -- el 2 es menor o igual que 5
> 4 * 8       -- el 4 es menor o igual que 5
>
> Tomemos ahora como ejemplo el número 36, su raíz cuadrada es 6 y sus
> factores son:
> 2 * 1       -- el 2 es menor o igual que 6
> 3 * 12     -- el 3 es menor o igual que 6
> 4 * 9       -- el 4 es menor o igual que 6
> 6 * 6       -- el 6 es menor o igual que 6
>
> Prueba con cualquier número que quieras, SIEMPRE al menos uno de los
> factores será menor o igual que el entero de su raíz cuadrada. Por lo tanto,
> no es eficiente que el ciclo continúe más allá del entero de la raíz
> cuadrada (en otras palabras, ese + 1 que escribiste está de más porque no es
> necesario llegar tan lejos para saber si un número es primo o no).
>
> Saludos.
>
> Walter.
>
>
>
> 2011/11/21 Alejandro Santos <listas en alejolp.com>
>>
>> 2011/11/21 Walter R. Ojeda Valiente <wojedav en gmail.com>:
>> > Alejandro, sólo una pequeña corrección: no hace falta recorrer desde 2
>> > hasta
>> > la (raíz cuadrada de N) + 1.
>> >
>> > Con recorrer desde 2 hasta la (raíz cuadrada de N) será suficiente, no
>> > es
>> > necesario sumarle ese 1.
>> >
>> > Si a alguien le interesa la demostración del por qué, se lo puedo
>> > explicar.
>> >
>>
>> ¿Un cuadrado perfecto? Supongo que la rigurosidad matemática no era el
>> principal objetivo de este hilo.
>>
>> --
>> Alejandro Santos
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>
>
>
> --
> Hay 10 clases de personas. Las que conocen aritmética binaria y las que no.
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
--------------------------------------
fpalm en mapologo.org.ve
francisco.palm en gmail.com

cel: +58 +424 7228252
tel: +58 +274 6352001

----
Debemos ser libres, no para hacer lo que nos plazca, sino libres para
comprender muy profundamente nuestros propios instintos e impulsos. K



More information about the pyar mailing list