Ayuda con un programa en C++

Iniciado por Gagy, 3 Diciembre 2012, 18:26 PM

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

Gagy

Me han pedido que haga un programa en C++ tal que así:
"Leemos diez números por teclado. El programa tiene que mostrar cuáles son primos y cuántos hay."
Necesito hacerlo con el código más simple posible, ya que estoy aprendiendo, con
#include<iostream>   y  #include<cmath>
Gracias de antemano.

Xenomorfo77

#1
Espero que te sirva si tienes dudas pregunta. Un saludo.

Código (cpp) [Seleccionar]

#include <iostream>
#include <stdlib.h>

using namespace std;

bool primo(int n)
{
   int res;
   for(int w=2; w < n-1; w++)
   {
       res = n % w;
       if(res==0) return false;

   }

   return true;
}

int main()
{
   int numero[100];
   bool primos = false;
   int cont = 0;

   cout << "Introducza los numeros" << endl;

   for(int j=0;j<10;j++)
   {
       cout << "Numero " << j+1 <<": ";
       cin >> numero[j];

   }

   for(int h=0;h<10;h++)
   {
       primos = primo(numero[h]);
       if(primos==true)
       {
           cout << numero[h]<< " ";
           cont++;
       }
   }

   cout << "Hay " << cont << " numeros primos"<<endl;
    getchar();
   return 0;

}

Gagy

Muchas gracias! Pero hay un problema, cuando ya he introducido todos los números, se me cierra el programa de repente, sin poder leer el resultado. ¿Podrías hacer algo? Por lo demás genial, muchas gracias por ayudarme.

leosansan

Cita de: jps96 en  3 Diciembre 2012, 18:26 PM
Me han pedido que haga un programa en C++ tal que así:
"Leemos diez números por teclado. El programa tiene que mostrar cuáles son primos y cuántos hay."
Necesito hacerlo con el código más simple posible, ya que estoy aprendiendo, con
#include<iostream>   y  #include<cmath>
La librería math no se usa en este caso y más simple que el de  Xenomorfo77 sería sin usar array ni función:
Código (cpp) [Seleccionar]
#include <iostream>
#include <stdio.h>
using namespace std;
main() {
    int i,cont=0,j,num,k;


    for (i=0;i<10;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 || num == 1){
            cont++;
            cout <<"El numero "<<num<<" esprimo"<<endl;
        }
        else cout <<"El numero "<<num<<" NO esprimo"<<endl;
    }
    cout <<"El numero de primos es :"<<cont<<endl;
    return 0;
}

Saluditos!.

Xenomorfo77

#4
Cita de: jps96 en  3 Diciembre 2012, 19:29 PM
Muchas gracias! Pero hay un problema, cuando ya he introducido todos los números, se me cierra el programa de repente, sin poder leer el resultado. ¿Podrías hacer algo? Por lo demás genial, muchas gracias por ayudarme.

Ya he modificado el code para que se pueda ver el resultado un saludo. Si acaso sigue sin irte añade otro getchar() mas.

Xenomorfo77

Cita de: leosansan en  3 Diciembre 2012, 19:46 PM
La librería math no se usa en este caso y más simple que el de  Xenomorfo77 sería sin usar array ni función:
Código (cpp) [Seleccionar]
#include <iostream>
#include <stdio.h>
using namespace std;
main() {
    int i,cont=0,j,num,k;


    for (i=0;i<10;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 || num == 1){
            cont++;
            cout <<"El numero "<<num<<" esprimo"<<endl;
        }
        else cout <<"El numero "<<num<<" NO esprimo"<<endl;
    }
    cout <<"El numero de primos es :"<<cont<<endl;
    return 0;
}

Saluditos!.



Buen code, a veces hago las cosas mas complicadas de lo que son jajaja. Un saludo!

Gagy

Muchísimas gracias!!  ;-) ;-)
Me habéis salvado, gracias de verdad a los dos.  :-*