domingo, 6 de diciembre de 2009

Factores Primos ahora con C++

 

El mismo programa hecho en Java pero ahora en C++

 

Problema: Un usuario desea determinar cuantos factores primos hay hasta el n número que desea, determinar cuantos factores hay utilizando métodos y clases.

Este problema me lo he inventado solo para practicar, así que cualquier parecido con la realidad es otro asunto.

Incluimos las librerías que deseamos utilizar en nuestra aplicación.

#include <conio>
#include <iostream>

Creamos una clase llamada Primos, la cual contendrá el método para obtener los factores primos que el usuario desea conocer.

//Clase para calcular n primos.

class Primos {

    //variables globales.
   int i,j,dv,sum;
   bool pm;

   //método para calcular los primos hasta donde el usuario quiera.
   public:
       void primos(int valores)
      {

          for (i=2; i<valores; i+=1)
         {
             pm=true;

             for (j=2; j<i/2; j+=1)
             {
              if(i%j==0)
              {
               pm = false;
               break;
              }
             }
              if(pm)
              {
              if(i==4) //el 4 no es factor primo
                  {
                  }
              else
              {
                 cout << i <<"-";
              }
            }
         }
      }

};

Una vez que ya tenemos nuestra clase, creamos el programa (aplicación) en Sí, que se resume apenas a 15 líneas de código.

 

void main ()
{
    Primos cprimos;

    int valor, op;

    do
    {
    clrscr();
    cout << "Hasta donde deseas calcular factores primos: "<<endl;
    cin >> valor;

    cprimos.primos(valor);

    cout << "Presione [1] para salir o [2] para continuar usando el programa"<<endl;
    cin >> op;
    }
    while (op!=1);
}

No esta nada mal para el uso de clases en C++, nunca pongan un valor muy alto o podrian llevarse toda la tarde calculando o bastante tiempo y obtendrán algo así

imageLa verdad que horrible y desesperante xD.

Saludos. 

No hay comentarios:

Publicar un comentario