Skip to content

Instantly share code, notes, and snippets.

@giobyte8
Last active May 28, 2017 22:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save giobyte8/021c9c38bc2de0f7f52cec71c11dbfc7 to your computer and use it in GitHub Desktop.
Save giobyte8/021c9c38bc2de0f7f52cec71c11dbfc7 to your computer and use it in GitHub Desktop.
A C++ program to determinate prime numbers
#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