Last active
May 28, 2017 22:43
-
-
Save giobyte8/021c9c38bc2de0f7f52cec71c11dbfc7 to your computer and use it in GitHub Desktop.
A C++ program to determinate prime numbers
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
using namespace std; | |
int main() { | |
int n; | |
// Solicita al usuario el número de primos deseados | |
cout << "¿Cuántos números primos desea calcular? "; | |
cin >> n; | |
// Muestra mensaje para informar que los calculos han iniciado | |
cout << "Iniciando el calculo de " << n << " números primos..." << std::endl; | |
int primos[n]; | |
// Calcula los números primos solicitados | |
int primosCalculados = 0; | |
int numeroActual = 2; // (1 no es primo), se inician los calculos a partir del 2 | |
while (primosCalculados < n) { | |
bool esPrimo = true; | |
// Verificar si 'numeroActual' es primo: | |
// Si 'numeroActual' puede ser divido entre cualquier | |
// número mayor a 1 y menor al número actual (1 < i < numeroActual) | |
// entonces el numero no es primo | |
for (int i = 2; i < numeroActual; i++) { | |
// Si el residuo de la división es '0', entonces | |
// la división es exacta (El número no es primo) | |
if (numeroActual%i == 0) { | |
esPrimo = false; | |
// | |
// Debido a que la división entre el valor actual | |
// de 'i' fue exitosa, no tiene caso evaluar los valores | |
// restantes de 'i'. La palabra 'break' finaliza el ciclo | |
// for para ahorrar ciclos de procesador | |
break; | |
} | |
} | |
// | |
// Si despues de evaluar la división entre todos los | |
// valores mayores a 1 y menores que 'numeroActual', ninguna | |
// división fue exacta, entonces el número es primo. Asi que | |
// lo ingresamos al arreglo de números primos | |
if (esPrimo) { | |
primos[primosCalculados] = numeroActual; | |
// Incrementamos el contador de primos calculados | |
// para que el ciclo while sepa cuando finalizar | |
primosCalculados++; | |
} | |
// Incrementamos el valor de 'numeroActual' para evaluar | |
// el siguiente número en la siguiente iteración del ciclo | |
numeroActual++; | |
} | |
// Mostramos al usuario los números primos que se han calculado | |
std::cout << "Números primos calculados:" << std::endl; | |
for (int j = 0; j < n; j++) { | |
std::cout << primos[j] << std::endl; | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment