/* Este ejercicio consiste en sumar los números primos que se encuentren
en el rango de 1 a 100.
Autor: Neils Vilchez
Fecha: 20-08-2024
*/
const int led=13;
void setup() {
Serial.begin(115200);
Serial.println("Inicia proceso");
pinMode(led, OUTPUT);
int sumPrimes = 0; // Inicializa la suma de los números primos
int num, i, mini = 2, maxi = 100;
bool isPrime;
// Recorre los números del 2 al 100
for (num = mini; num <= maxi; num++) {
isPrime = true;
i = 2; // Inicia la verificación desde el número 2
Serial.println(num);
// Comprueba si el número actual es divisible por cualquier número
// del 2 al num/2
do {
if (num % i == 0) { // Verifica si es divisible por i
isPrime = false; // Si es divisible por i entonces no es primo
}
i++;
} while (isPrime && (i <= num / 2)); // Continuar con la operación
// mientras el número actual
// se considere primo
if (isPrime) {
sumPrimes += num; // Suma el número primo
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
Serial.println(sumPrimes);
}
}
void loop() {
// No se colocan instrucciones en esta función
}
/*DIAGRAMAA DE FLUJO REGLA: No sobrepasar los 15 bloques */