martes, 21 de julio de 2015

13.1 ► Determinar si un número es primo

Se dice que un número es primo cuando solo tiene dos divisores enteros que son entre 1 y entre si mismo.

Es decir, si "n" tiene más de dos divisores enteros "n" no es primo, si solo tiene dos divisores enteros entonces si es primo.

El 0 y 1 no se consideran, por lo que el primer número primo es el 2 porque solo tiene dos divisores enteros:

► 2
2 / 1 = 2 → Entre 1, el resultado es 2, 2 es entero
2 / 2 = 1 → Entre 2, el resultado es 1, 1 es entero
Tiene dos divisores enteros: 1 y 2, por lo tanto es primo

► 3
El 3 también es primo:
3 / 1 = 3 → Entre 1, el resultado es 3, 3 es entero
3 / 2 = 1.5 → El resultado es 1.5, 1.5 no es entero
3 / 3 = 1 → Entre 3, el resultado es 1, 1 es entero
Tiene dos divisores enteros: 1 y 3, por lo tanto es primo.

► 4
4 / 1 = 4 → Entre 1, el resultado es 4, 4 es entero
4 / 2 = 2 → Entre 2, el resultado es 2, 2 es entero
4 / 3 = 1.33 → El resultado es 1.33, 1.33 no es entero
4 / 4 = 1 → Entre 4, el resultado es 1, 1 es entero
Tiene 3 divisores enteros: 1, 2 y 4, por lo tanto no es primo

► 5
5 / 1 = 5 → Entre 1, el resultado es 5, 5 es entero
5 / 2 = 2.5 → Entre 2, el resultado es 2.5, 2.5 no es entero
5 / 3 = 1.66 → Entre 3, el resultado es 1.66, 1.66 no es entero
5 / 4 = 1.25 →  Entre 4, el resultado es 1.25, 1.25 no es entero
5 / 5 = 1 → Entre 5, el resultado es 1, 1 es entero
Tiene 2 divisores enteros: 1 y 5, por lo tanto es primo


■ Ejercicio 13.1: Determinar si un número es primo.

Para saber si un número es primo debemos contar cuantos divisores enteros tiene, para ello lo dividiremos tantas veces como el valor del propio número, es decir, si el número es "n", lo dividiremos entre 1, 2, 3, hasta "n" y contaremos los divisores enteros.

Si al final del ciclo contamos más de 2 divisores enteros quiere decir que el número no es primo.

¿Cómo sabemos si al dividir un número "n" entre "x" el resultado es un número entero?
Hacemos la división y si el residuo es 0, entonces el resultado de la división será entero, como se muestra en la siguiente imagen:



► Basándonos en esto, el algoritmo quedaría de la siguiente forma:

Variables
    numero, i, divisores tipo entero
Empieza
    divisores <- 0;
    Escribe "Ingresa número"
    Leer numero
    Para i<-1 hasta numero Hacer
        Si numero MOD i = 0 Entonces
            divisores <- divisores + 1
        Fin_si
    Fin_para
    Si divisores = 2 Entonces
        Escribe "El número es primo"
    Fin_si
Fin


*En pseudocódigo el MOD devuelve el residuo de la división, es como utilizar el %% en C# o Java.

No hay comentarios:

Publicar un comentario