App inventor 2 en español
Cómo programar los teléfonos móviles con Android.
Curso de App inventor 2 en español - Juan Antonio Villalpando
-- Tutorial de iniciación de App Inventor 2 en español --
Volver al índice del tutorial
____________________________
84B.- Números primos.
p84B_numeros_primos.aia
- Un número primo es aquel que solo es divisible entre él mismo y la unidad.
- El número 7 es primo, porque solo es divisible entre 7/7 = 1 (resto 0) y 7/1 = 7 (resto = 0)
- El número 6 no es primo, porque además de 6 y de 1 se puede dividir entre 6/3 = 2 (resto = 0) y entre 6/2 = 3 (resto = 0)
- En nuestra aplicación al pulsar un Botón se calculará y se mostrarán los números primos menores de 100.
- [En el tutorial 18parimpar, vimos cómo calcular los divisores de un número.]
- [Otra forma de obtener los números primos: 167C.- JavaScript. Obtención de números primos. ]
_________________
- Diseño.
________________
- Bloques.
_________________
- Comentarios.
- En un bucle vamos tomando números empezando por el 100 y disminuyendo (-1): 99, 98, 97, 96,... hasta el 2
- Cada vez que el bucle tenga un número, supongamos que está en el 47, a una variable llamada divisor se le asigna uno menos, el 46.
- Así que irá dividiendo el 47 entre 46, 45, 44, 43, 42... hasta el 2
- Entra en otro bucle llamado mientras (while).
- Mientras el divisor sea mayor de 1 estará dando vueltas en ese bucle.
- Va dividiendo el dividendo (47) entre el divisor, en caso que su división tenga resto 0 es que el dividendo es divisible por ese número y se indica que es_divisible es cierto.
- Además obligamos que salga del bucle mientras, poniendo divisor a 0. Ya no tendrá que seguir haciendo divisiones al 47.
- En caso que haya dividido al 47 por todos los números menores que él y que la variable es_divisible siga siendo a falsa, significa que ese número es primo, lo añade a la Etiqueta1.
- La línea divisor = divisor -1 es la que hará que cada vez que existe una iteración divisor sea uno menos que el anterior.
- Para finalizar los cáculos la aplicación tiene que realizar muchas iteraciones, de tal manera que puede tardar más de 40 segundos en dar el resultado.
_________________
- Propuestas.
- Consulta el tiempo que tarda en calcular los número primos, tal vez 45 segundos.
- Inhabilita el bloque divisor = 0. Consulta otra vez el tiempo, tal vez 65 segundos.
- El bloque divisor = 0, se ha puesto para que en el caso que ya encuentre un divisor, salga del bucle "Mientras". No hace falta seguir dividiendo ese dividendo.
- Cuenta el número de iteraciones totales necesarias para dar el resultado. Muéstralo en una Etiqueta2.
- Criba de Eratóstenes, consiste en eliminar o cribar números en determinadas secuencias para que al final solo queden los primos.
- Criba de Eratóstenes. Wikipedia.
- Al final de este mensaje hay un ejemplo de la Shieve of Erastostenes.
https://groups.google.com/forum/#!category-topic/mitappinventortest/general-questions-about-app-inventor-programming/5fTa_mXDdv0
__________________________________
|