Números primos en un rango

La idea es imprimir en pantalla los números primos entre 1 y un dato introducido por el usuario. Creo que es la primera vez que usamos un ciclo dentro de otro ciclo en este blog. Pero en realidad es muy sencillo:

#include<iostream>
using namespace std;
 
int main()
{
  int n=0,c=0,c2=0,res=0,nc=0;
  cout<<"Introduce el limite de numeros: "; cin>>n;
  for(c=1;c<=n;c++)
  {
    for(c2=1;c2<=c;c2++)
    {
      res=c%c2;
      if(res==0)
      {
        nc=nc+1;
      }
    }
    if(nc==2)
    {
      cout<<" "<<c;
    }
    nc=0;
  }
}

El operador % obtiene el residuo de la división de dos números. Por ejemplo:
10 % 3 = 1
Porque el 3 cabe 3 veces en el 10 y le sobra 1.

Explicación:

  1. El primer ciclo lleva la cuenta de los números de 1 a n de uno por uno en la variable c
  2. Luego se inicia un ciclo de 1 a c en la variable c2. Este ciclo se hará n veces porque está dentro de el primer ciclo
  3. En la variable res se guarda el residuo de dividir c / c2
  4. Si el residuo es cero, se incremento al contador nc
  5. Si al terminarse el segundo ciclo el contador nc es igual a 2, significa que el número es primo y lo imprime

Recuerden que los números primos son los que únicamente se dividen (sin dejar residuo) entre 1 y entre si mismos

Enlaces a “Números primos en un rango”

  1. [...] vimos como imprimir los números primos en un rango determinado por el usuario, ahora la idea es pedirle al usuario un número y decirle si es primo o [...]

Deja tu comentario