Solución al Ejercicio 3.7 #include <stdio.h> #define FALSO 0 #define CIERTO 1 void main() { int A, B, num, i, es_primo, suma; /* Usamos un do-while para la comprobación de errores. */ do { printf("\nIntroduce el valor de A: "); scanf("%d", &A); printf("\nIntroduce el valor de B (mayor que A): "); scanf("%d", &B); if (A > B) printf("\nEl valor de A debe ser menor que el de B"); } while (A > B); /* Inicializamos la suma. */ suma = 0; /* Analizamos los números en el intervalo [A,B]*/ /* Inicializamos num al primer valor del intervalo*/ num=A; while (num <= B) { /* Comprobamos si "num" es primo o no */ es_primo = CIERTO; i = 2; while ( (i <= (num / 2)) && (es_primo==CIERTO) ) { es_primo = (num % i != 0); i++; } if (es_primo == FALSO) suma = suma + num; /*Incrementamos el valor de num para analizar el siguiente elemento del intervalo*/ num++; } printf("\nLa suma de los no-primos entre %d y %d es %d\n", A, B, suma); }