Problema básico en C++

Iniciado por suzy, 11 Febrero 2013, 17:09 PM

0 Miembros y 1 Visitante están viendo este tema.

suzy

Buenas a todos!
Resulta que estoy empezando a programar en C++ y ando un poco perdido.
Me han pedido que haga un problema tal que así:

Introduzco por teclado los números 2,8,4,3,1 y el programa tiene que decirme cuáles de ellos son primos. (De cabeza se sabe pero tengo que poner el código para que el programa me los diga)

Por último, necesito hacer el programa de la forma más simple posible,ya que me estoy iniciando, con las librerías #include <iostream> y #include <cmath>.

Gracias!

amchacon

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

suzy

Muchas gracias amchacon!
Pero tengo una duda. Mi profesor no me ha explicado los comandos "bool Primo;" y
" cin.get();", por lo tanto, ¿habría otra forma de poner estos comandos?


#include <iostream>
using namespace std;
int main()
{
    int matriz [] = {2,8,4,3,1},i,j;
    bool Primo;

    cout<<"Los numeros primos son: "<<endl;

    for (i=0; i<5; i++)
    {
        Primo = true;
        for(j=2; j<matriz; j++)
        {
            if(matriz%j==0)
            {
                Primo = false;
                j = matriz;
            }
        }
        if (Primo == true)
            cout<<matriz<<" ";
    }

    cin.get();
    return 0;
}

amchacon

Una variable bool es una variable que puede tener dos valores: 1 o 0 (que tambien puede expresarse como true o false).

Puedes cambiar el bool por un int y los true y false por 0 y 1 .

El cin.get es solo para pausar el programa, se puede eliminar.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

leosansan

#4
Mírate este otro enlace:

http://foro.elhacker.net/programacion_cc/ayuda_con_un_programa_en_c-t377604.0.html;msg1806477#msg1806477

O sea:
Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;
int main() {
   int i,cont=0,j,num,k,total;
   cout <<"Ingresa el total de numeros: ";
   cin >>total;
   for (i=0;i<total;i++){
       cout <<"Ingresa el numero "<<i+1<<": ";
       cin >>num;
       k=0;
       for (j=1; j<=num; j++)
           if (num%j == 0)
               k++;
       if (k == 2 ){
           cont++;
           cout <<"El numero "<<num<<" ES primo"<<endl;
       }
       else cout <<"El numero "<<num<<" NO es primo"<<endl;
   }
   cout <<"El numero de primos es :"<<cont<<endl;
   return 0;
}

Saluditos!.
P.D: Cuando tengas que poner un código usa las etiquetas GeSHi y eliges C++ y en medio de las dos etiquetas Code que te salen "pegas" el código.

suzy

Gracias a los dos!
Saludos!  :D

BatchianoISpyxolo

#6
Si pensáis un poquitito el código es fácilmente optimizable utilizando un ciclo mientras que en vez de un para.

Imaginemos que queremos comprobar si 100000000000000000000000000000000000000000000000, es primo. No tiene sentido mirar todos los números naturales hasta ese y verificar si son divisores o no.


Código (cpp) [Seleccionar]
// N = número a comprobar si es primo o no
    int k = 1;
    while ((k<N) && (N%(++k) != 0));
    puts(k < N ? "no primo" : "primo");



Que lo queréis aplicar a un array de números... pues añadir un for como ciclo externo para recorrer los elementos como ya habéis hecho. Qué tenéis una estructura árbol, pues recorréis la estructura recursivamente... etc etc xD
Puede que desees aprender a programar desde 0: www.espascal.es