En esta ocasión les comparto un algoritmo que permite leer un número de 2 dígitos y determinar si los dos dígitos son primos.
Como ya es costumbre vamos a explicar el funcionamiento de este algoritmo, entonces lo primero que hacemos es ponerle un nombre:
Algoritmo deTarea
Con la palabra reservada Definir declaramos las variables.
Definir x, n, contador, digito, primo, a, b, c Como Entero
Con la función escribir pedimos un número.
Escribir «Ingresa un número»
Este número lo ingresamos en la variable n.
leer n
Evaluamos si el número es mayor a 9 pero menor a 100, con esto nos aseguramos que sea de 2 dígitos.
si n > 9 y n < 100 Entonces
Dividimos el numero entre 10, con la función trunc para sacar el primer digito, y lo guardamos en la variable a.
a = trunc(n/10)
Dividimos el numero entre 10 con la función mod, con esto logramos sacar el segundo digito y lo guardamos en la variable b.
b = n mod 10
Utilizamos un ciclo “PARA”, este ciclo empezara con la variable «c» valiendo 1 y se incrementará de 1 en 1 hasta llegar a 2.
para c = 1 Hasta 2 Con Paso 1 Hacer
En cada bucle evaluamos si la variable c es igual a 1.
si c == 1 Entonces
Si la condición se cumple, entonces en la variable digito almacenamos lo que se encuentra almacenado en la variable «a», es decir almacenamos el primer digito.
digito = a
SiNo
Si la condición no se cumple quiere decir que la variable «c» es igual a 2.
Entonces almacenamos en la variable digito lo que se encuentra almacenado en la variable «b», es decir almacenamos el segundo digito.
digito = b
FinSi
Inicializamos la variable x con el número 1, con esta variable controlare un ciclo mientras.
x = 1
Inicializo la variable contador con el número 0, con esta variable vamos a determinar si el número es primo.
contador = 0
Utilizamos un ciclo que se repetirá mientras que la variable “x” que empieza valiendo 1, sea menor o igual al número almacenado en la variable digito.
Mientras x <= digito Hacer
En cada bucle evaluamos si el número almacenado en la variable digito al dividirlo entre lo que vaya valiendo x, si el residuo de la división es igual a 0,
si digito mod x == 0 Entonces
Si la condición se cumple quiere decir que es una división exacta, por lo tanto con la variable contador vamos contando estas divisiones exactas.
contador = contador + 1
FinSi
En cada bucle incrementamos la variable x en 1, esto lo hacemos para que el ciclo mientras tenga movimiento y no se vaya a quedar en un ciclo infinito.
x = x + 1
FinMientras
Al finalizar el bucle, evaluamos si la variable contador es igual a 2.
En pocas palabras estamos evaluando si el número almacenado en la variable digito, únicamente tiene dos divisores, sabemos que los números primos son aquellos que únicamente tienen dos divisores el mismo número y el número 1.
si contador == 2 Entonces
Si la condición se cumple entonces mostramos un mensaje donde indicamos que el número es primo.
Escribir «El digito «,digito,» es primo»
La variable primo la incrementamos en 1, es decir cuando alguno de los dígitos del número ingresado por teclado sea primo entonces lo contamos.
primo = primo + 1
SiNo
Cuando la condición no se cumpla, quiere decir que el número almacenado en la variable digito no es primo.
Escribir «EL digito «,digito,» no es primo»
FinSi
FinPara
Después evaluamos si la variable primo es igual a 1.
si primo == 1 Entonces
Si la condición se cumple quiere decir que el número ingresado por teclado únicamente tiene un digito primo.
Escribir «Solo un 1 digito es primo»
SiNo
Si la condición no se cumple, entonces evaluamos si la variable primo es igual a 2.
si primo == 2 Entonces
Cuando esta condición se cumpla, quiere decir que los dos dígitos del número ingresado por teclado son primos.
Escribir «Los 2 digitos son primos»
SiNo
Si esta condición no se cumple, entonces ninguno de los dígitos del número ingresado por teclado es primo.
Escribir «Ningun digito es primo»
FinSi
FinSi
SiNo
Cuando se ingrese un número que no sea de dos dígitos mandamos el siguiente mensaje.
Escribir «El número no es de 2 dígitos»
FinSi
FinAlgoritmo
Esta es la solución de este algoritmo, espero les guste y más que nada que les pueda ser de utilidad, les dejo el código fuente.
Si mi contenido te ha sido de utilidad y te gustaría hacerme alguna donación te dejo un enlace.