Monthly Archives: December 2010

Imprimir determinados números primos

Sobre números primos he escrito bastantes programas y me he dado cuenta de que los profesores de programación tienen cierta fijación con ellos. Pero bueno, el programa de hoy imprime la cantidad de números primos que el usuario quiera y es interesante porque es un buen ejemplo de la utilidad de los ciclos infinitos, que ya habíamos visto antes.

Ok, el código es este:

#include
using namespace std;

int main()
{
    int cnt,i=0,ii,res,nc=0,np=0;
    cout <> cnt;
    for(;;)
    {
        i++;
        for(ii=1;ii<=i;ii++)
        {
            res=i%ii;
            if(res==0)
                nc=nc+1;
        }
        if(nc==2)
        {
            cout << i << " ";
            np++;
        }
        nc=0;
        if(np==cnt)
            break;
    }
}

Si tienen problemas para entender cómo obtuvimos los números primos, deberían darle una revisada a estos posts: Saber si es primo o no y Primos en un rango.

Lo que hicimos es que todo el programa estuviera dentro de un ciclo infinito que se detendrá cuando nuestra variable que se aumenta cada vez que obtenemos un numero primo np sea igual a la variable con la cantidad deseada de números primos cnt.

Pero recuerden que donde podemos usar un ciclo infinito, queda mucho mejor un ciclo while:

#include
using namespace std;

int main()
{
    int cnt,i=0,ii,res,nc=0,np=0;
    cout <> cnt;
    while(np!=cnt)
    {
        i++;
        for(ii=1;ii<=i;ii++)
        {
            res=i%ii;
            if(res==0)
                nc=nc+1;
        }
        if(nc==2)
        {
            cout << i << " ";
            np++;
        }
        nc=0;
    }
}

Únicamente ponemos la palabra while en lugar de for, copiamos la condición que ‘condicionaba’ (sí, lo se) el break y la pegamos dentro de los paréntesis del while pero de manera contraria (de == a != o de ).

Advertisements

No se hacen proyectos finales

Bueno pues lo dejé muy claro en el título ¿no? pero lo repito, no se hacen proyectos finales. Cuando cree este blog lo hice pensando en ayudar a todos los estudiantes de programación en c++ que necesitan algún empujón para lograr hacer sus propios programas.

Tengo pruebas para decir que casi nunca me niego a hacer programas pequeños que me piden por correo o por comentarios, pero cuando me llegan correos pidiendo que les haga un programa que “lleve el control del inventario de un almacén registrando cada entrada y salida de producto… pidiendo tipo, cantidad, numero de control, precio… imprimiendo al final del día el reporte….. y que además haga los cálculos para…. en formato de…  y con 7 menús con… con un apartado de ayuda…. para mañana por favor” pues ni les respondo.

La verdad es que no se vale. Durante todo el año estuvieron haciendo programas sencillos con los que era totalmente válido pedir ayuda, pero no, piden ayuda hasta el final del semestre cuando les encargan un proyecto final.

Recuerden que yo también soy un estudiante y en estos días también estuve ocupadísimo con tareas y trabajos. Por eso no había publicado nada. ¡Pero ya estoy de vacaciones!, así que ya voy a tener un poco más de tiempo para atender mis blogs 🙂