12 de noviembre del 2009
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:
- El primer ciclo lleva la cuenta de los números de 1 a n de uno por uno en la variable c
- 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
- En la variable res se guarda el residuo de dividir c / c2
- Si el residuo es cero, se incremento al contador nc
- 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”
-
[...] 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 [...]
Diculpa esta muy bueno tu Programa ahora solo quiero saber como hacer q t los imprima en forma descendente ejemplo si Introduces el numero 20 que imprima 19,17,13 hasta llegar a uno si tienen la respuesta enviarmela a mo correo sombypaz@gmail.com
pues solo utiliza metodo burbuja, es lo unico q se me ocurre
No, el método burbuja es innecesario, solo tienes que cambiar los ciclos para que vayan de mayor a menor:
... for(c=n;c>=1;c--) { for(c2=c;c2>=1;c2--) { ...Lo demás queda exactamente igual :)