// GRAFICA DE NUMEROS PRIMOS CONTENIDOS EN UN RANGO #include <stdio.h> // BLOQUE DE CONSTANTES //______________________________ #define BASE 28 // BLOQUE DE PROTOTIPOS //______________________________ void Inicio(); int PideDato(); void Revisa(int); int EresPrimo(int); void Grafica(); // BLOQUE DE VARIABLES GLOBALES //_______________________________ int Primos = 0; int NoPrimos = 0; // INICIO DEL CODIGO //______________________________ void Grafica() { int N = 0; int R = 0; // RESTO * * char ESP_AST[7] = "\t \t\t\t*\0"; char AST_ESP[7] = "\t*\t\t\t \0"; char AST_AST[7] = "\t*\t\t\t*\0"; N = Primos; // SON IGUALES EN CANTIDAD N = (Primos > NoPrimos) ? BASE - Primos : BASE - NoPrimos; while(N) // IMPRIME SALTOS DE LINEA { printf("\n"); N--; } if (Primos > NoPrimos) { N = Primos-NoPrimos; R = Primos-N; while(N) // IMPRIME ASTERISCO ESPACIO { printf("%s\n", AST_ESP); N--; } } else{ // IMPRIME ESPACIO ASTERISCO N = NoPrimos-Primos; R = NoPrimos-N; while(N) { printf("%s\n", ESP_AST); N--; } } while(R) { printf("%s\n", AST_AST); R--; } printf("___________________________________________________\n"); printf("\tSI PRIMOS\t\tNO PRIMOS"); scanf("%d", &N); // ESPERAR UN POCO } int EresPrimo(int Numero) { int x, Contador = 0; for(x=2; x <= Numero/2; x++) { if(Numero%x == 0) Contador++; } if (Contador) return 0; return 1; } void Revisa(int X) { int Numero = 0; for(Numero = 1; Numero <= X; Numero++) { (EresPrimo(Numero)) ? Primos++ : NoPrimos++; } } int PideDato() { int Limite = 0; printf("Introduce el lImite: "); scanf("%d", &Limite); return Limite; } void Inicio() { int Limite = 0; Limite = PideDato(); Revisa(Limite); Grafica(); } main() { Inicio(); }