Números primos. Escriba un programa que lea un número entero mayor que 2 (llamémoslo k) y encuentre e imprima todos los números primos entre 3 y k.

IDIOMA: C ++

DESAFÍO:

Números primos.
Escriba un programa que lea un número entero mayor que 2 (llamémoslo k) y encuentre e imprima todos los números primos entre 3 y k.
Un número primo es un número tal que 1 y él mismo son los únicos números que lo dividen uniformemente (por ejemplo, 3, 5, 7, 11, 13, 17,…).

Una forma de resolver este problema es utilizar un bucle doblemente anidado.
El ciclo externo puede iterar desde 3 hasta k mientras que el ciclo interno verifica si el valor del contador para el ciclo externo es primo.
Una forma de ver si el número n es primo es hacer un bucle de 2 a n-1 y si alguno de estos números divide n uniformemente, entonces n no puede ser primo.
Si ninguno de los valores de 2 a n-1 divide uniformemente! N, entonces n debe ser primo.
(Tenga en cuenta que hay varias formas sencillas de hacer que este algoritmo sea más eficiente).

 

EJECUCIÓN DE MUESTRA # 1: ./ETest
Notas para el instructor:
El mensaje para dar la entrada del usuario debe ser exactamente “Ingrese n (para imprimir números primos de 3 an):”
Y genere cada número primo x exactamente como “x es un número primo”, seguido de un salto de línea.

SOLUTION:


#include <iostream>
using namespace std;

int main(){
    bool isPrime=true;
	int n ;

	cout << enter the number ; cin >> n ;


	for(int primeCandidate=3; primeCandidate<=n; primeCandidate++){
		isPrime = true;

		for(int factor=2; factor<primeCandidate-1; factor++){
			if(primeCandidate%factor == 0){
				isPrime = false;
				break;
			}
		}

		if(isPrime == true){
			cout<< primeCandidate << " is prime." << endl;
		}
	}

	return 0;
}