Inicialmente se les entrego a los estudiantes un programa elaborado por el profesor que presenta en pantalla todos los números primos contenidos en un rango a partir del numero 2. (Números primos son números que solo pueden ser divididos exactamente entre 1 y ellos mismos)
Programa Inicial
/* Programa elaborado: Carlos Ferrer
Este programa presenta en la consola todos los números primos
en un rango especifico
fecha: 25-sep-2025
*/
#include<iostream> //Biblioteca para manejar la consola
using namespace std; // Instrucción para evitar escribir std constantemente
main()
{
int menor,mayor; //Rango a estudiar
int n; //Numero a estudiar
int div; //Divisor
// Se solicita el rango a estudiar
cout <<"ingrese el limite inferior del rango a estudiar (>=2) = ";
cin >>menor;
cout <<"ingrese el limite superior del rango a estudiar (>=limite menor) = ";
cin >>mayor;
//Se imprime el encabezado
cout <<endl<<"NUMEROS primos ENTRE "<<menor<<" Y "<<mayor<<endl<<endl;
// Se determina si el numero n es primo
n=menor;
evaluar_otro_numero:
div=2;
seguir_dividiendo:
if (n%div==0) //Se verifica si la división fue exacta
{
/*Se verifica si el divisor es menor que el numero de estudio
de ser así el numero no es primo*/
if (div<n)
{
n=n+1; //Se pasa al numero siguiente
}
else // El numero es primo y se presenta en la consola
{
cout <<n<<" ";
n=n+1;
}
goto evaluar_otro_numero; //se pasa al numero siguiente
}
//Si el divisor no divide exactamente aumentamos el divisor
if (n<mayor)
{
div=div+1;
goto seguir_dividiendo;
}
}
Posteriormente el profesor les indico a los estudiantes que modificaran el programa para presentar los números primos que finalizaran en siete (7).Uno de los estudiantes propuso la idea de que: Se le sumara al numero primo 3 y posteriormente se dividiera entre 10, si esa operación no presentaba residuo el numero terminaba en siete (7), al profesor le gusto la idea del estudiante y les solicito a los alumnos que la pusieran en marcha. Veamos como lo programó el profesor:
2do Programa - Solo los que terminan en 7
/* Programa elaborado: Carlos Ferrer
Este programa presenta en la consola todos los números primos que terminan en 7
en un rango especifico
fecha: 25-sep-2025
*/
#include<iostream> //Biblioteca para manejar la consola
using namespace std; // Instrucción para evitar escribir std constantemente
main()
{
int menor,mayor; //Rango a estudiar
int n; //Numero a estudiar
int div; //Divisor
// Se solicita el rango a estudiar
cout <<"ingrese el limite inferior del rango a estudiar (>=2) = ";
cin >>menor;
cout <<"ingrese el limite superior del rango a estudiar (>=limite menor) = ";
cin >>mayor;
//Se imprime el encabezado
cout <<endl<<"NUMEROS primos que terminan en 7 ENTRE "<<menor<<" Y "<<mayor<<endl<<endl;
// Se determina si el numero n es primo
n=menor;
evaluar_otro_numero:
div=2;
seguir_dividiendo:
if (n%div==0) //Se verifica si la división fue exacta
{
/*Se verifica si el divisor es menor que el numero de estudio
de ser así el numero no es primo*/
if (div<n)
{
n=n+1; //Se pasa al numero siguiente
}
else // El numero es primo y se presenta en la consola
{
if((n+3)%10==0) //Verificamos que termine en 7
{
cout <<n<<" ";
}
n=n+1;
}
goto evaluar_otro_numero; //se pasa al numero siguiente
}
//Si el divisor no divide exactamente aumentamos el divisor
if (n<mayor)
{
div=div+1;
goto seguir_dividiendo;
}
}
Luego el profesor les indico a los estudiantes que modificaran que solicitara el numero de finalización al principio. Veamos como lo programó el profesor: 3er Programa - Solicitando el nro. de finalización
/* Programa elaborado: Carlos Ferrer
Este programa presenta en la consola todos los números primos que terminan
en una cifra especifica en un rango especifico
fecha: 25-sep-2025
*/
#include<iostream> //Biblioteca para manejar la consola
using namespace std; // Instrucción para evitar escribir std constantemente
main()
{
int menor,mayor; //Rango a estudiar
int n; //Numero a estudiar
int div; //Divisor
int cifra_final; //cifra final de los números primos a presentar
// Se solicita el rango a estudiar
cout <<"ingrese el limite inferior del rango a estudiar (>=2) = ";
cin >>menor;
cout <<"ingrese el limite superior del rango a estudiar (>=limite menor) = ";
cin >>mayor;
//solicitamos la cifra de finalización
cout <<"ingrese la cifra de final de los numeros primo = ";
cin >>cifra_final;
//Se imprime el encabezado
cout <<endl<<"NUMEROS primos que terminan en "<<cifra_final<<" ENTRE "<<menor<<" Y "<<mayor<<endl<<endl;
// Se determina si el numero n es primo
n=menor;
evaluar_otro_numero:
div=2;
seguir_dividiendo:
if (n%div==0) //Se verifica si la división fue exacta
{
/*Se verifica si el divisor es menor que el numero de estudio
de ser así el numero no es primo*/
if (div<n)
{
n=n+1; //Se pasa al numero siguiente
}
else // El numero es primo y se presenta en la consola
{
if((n+(10-cifra_final))%10==0) //Verificamos que termine en la cifra exigida
{
cout <<n<<" ";
}
n=n+1;
}
goto evaluar_otro_numero; //se pasa al numero siguiente
}
//Si el divisor no divide exactamente aumentamos el divisor
if (n<mayor)
{
div=div+1;
goto seguir_dividiendo;
}
}
LO MAS IMPORTANTE ES QUE PARA HACER ESAS MODIFICACIONES EL PROFESOR USO LA TÉCNICA DE LA DEPURACIÓN (DEBUGGING) DE FORMA DE CORREGIR LO QUE IMPLEMENTABA HASTA LOGRAR EL RESULTADO ESPERADO.
INTENTE HACERLO UD. SIN VER EL PROGRAMA ORIGINAL.
EXITO!!!!!!