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

Walter R. Ojeda Valiente wojedav en gmail.com
Dom Nov 20 03:30:42 ART 2011


Para saber si el número "x" es primo, basta con dividirlo entre todos los
números comprendidos entre "2" y la raíz cuadrada de "x", ya que es
imposible que sea divisible por dos o más números mayores que su raíz
cuadrada. Si el resultado de la división es cero, el número no es primo.

Por ejemplo, el número 50 puede hallarse multiplicando:

1 x 50 = 50
2 x 25 = 50
5 x 10 = 50

La raíz cuadrada de 50 es 7 y algo.

Siempre, al menos uno de los factores es menor o igual que 7. Lo mismo se
cumple para cualquier otro número. Siempre uno de los factores será menor o
igual que su raíz cuadrada. Por lo tanto, no tiene sentido que el ciclo
vaya más allá.

Saludos.

Walter.



2011/11/20 claudio canepa <ccanepacc en gmail.com>

>
>
> 2011/11/20 Javier Marín <nano.world.contact en gmail.com>
>
>> Bueno chicos, apenas comienzo con esto y ando dandome tumbos con el
>> lenguaje, aunque me gusta. Ya tengo azules a los muchachos de un foro y
>> tampoco es idea hacerles Spam, ni tampoco a ustedes, así que me limito con
>> mis preguntas.
>>
>> No conozco bien los bucles en python y ando practicando, tengo dos
>> problemas propuestos:
>>
>> El primero es hacer una multiplicación con sumas sucesivas, osea 2*3 =
>> 2+2+2.
>>
>> Hice el código más o menos así:
>>
>> #-*- coding: utf-8 -*-
>> a = int(raw_input('Ingrese un número: '))
>> b = int(raw_input('Ingrese otro número: '))
>> s = 0
>> while s <= a:
>> s = s+b
>> print s
>>
>>
>> Muy sencillito, pero solo me recorre dos veces el bucle o 3, pero nunca
>> me da el resultado. Había visto un poco la estructura de control For in
>> pero según entiendo es para recorrer listas tuplas o diccionarios.
>>
>>
> Tu programa hace una cosa diferente que 'sumar b (a veces)'
> Reemplaza s por 'subtotal' y te va a resultar claro que la expresion del
> while no tiene sentido.
>
>
>
>> El segundo problema es también un poco fastidioso para mi siendo novato,
>> es leer un número y decir si es primo o no imprimiendo por pantalla. Un
>> numero primo es aquel numero natural únicamente divisible entre 1 y el
>> mismo. De este aún no he hecho mucho porque no tengo mucha idea de como
>> hacerlo, lo hice en C pero no es lo mismo.
>>
>> Alguna sugerencia o explicación? Gracias por adelantado a todos.
>>
>>
> Lo primero es tener en claro que se quiere escribir.
> Una descripcion simple para el caso de los primos seria:
>
> n es primo si y solo si ningun entero k con 1<k<n divide con resto cero a n
>
> Y como lo paso a python ?
>
> recorrer los k con 1 <k < n lo hago con for y xrange:
>
> for k in xrange(2, n):
>
> 'k divide a n' en python seria n%k==0 , que se lee como ' el resto de
> dividir n por k es igual a cero'
>
> y si algun k divide a n , entonces n no es primo
> si ningun k divide a n , n es primo
>
> Entonces, como escribirias una funcion es_primo(n) ?
>
> El caso n=1 es especial, hay que agregar un if para manejarlo.
>
>
>
> _______________________________________________
> 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.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20111120/ee07cec0/attachment.html>


More information about the pyar mailing list