elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 00:56  


Tema destacado: Recuperar cuenta de Google, GMail, Youtube

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Ejercicio C++ (Solucionado)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ejercicio C++ (Solucionado)  (Leído 637 veces)
final_frontier
Wiki

Desconectado Desconectado

Mensajes: 574


WOLOLOOO! Deal with it x)


Ver Perfil
Ejercicio C++ (Solucionado)
« en: 6 Noviembre 2008, 17:29 »

Hola a todos, tengo un programa de numeros primos casi terminado pero hay una cosa del programa que no entiendo

void numerito::calcu(){

   n = 1000;
   i = 1;
   while(i <= num)
   {
       for(p = 2; n % p != 0; p++);
       if(p == n)[b/]
       {
       cout << n <<"\n";
       i++;
       }
       n--;

Qué se supone que significa lo que está marcado en negrita?? tengo que:

n%p!=0 //para que sea primo n entre p no puede dar 0 de resto...

if(p==n) //si p es igual a n el resto es 0!!!! la condición del for se rompe, que pasa ahi?


« Última modificación: 6 Noviembre 2008, 19:28 por final_frontier » En línea

Sie ist der hellste Stern von allen und wird nie vom Himmel fallen...
AxXioma


Desconectado Desconectado

Mensajes: 795


Algunos pájaros no pueden ser enjaulados...


Ver Perfil
Re: Ejercicio C++
« Respuesta #1 en: 6 Noviembre 2008, 19:02 »

Perdona la tardanza, pero yo mañana tengo un examen y no he estado en casi todo el día. Todos tenemos cosas que nos urgen te entiendo, pero el que quiera responder responderá y el que no no lo hará, no es cuestión de abrir un hilo igual al otro para que te hagan más caso o menos.

Bueno, no se que preguntas realmente, si puedes explicarte mejor te lo agradecería, pero yo te recomiendo una función para verificar si es primo o no:

Esta función devuelve cero si el número es primo, y uno si no lo es.

Código
int esPrimo(int a){
int b=0;
int res=0;//Es primo
int i=2;
while(i<a && b==0){
if(a%i==0){
b=1;
res=1;//No es primo
}else i++;
}
return res;
}


En línea





.::Cuanto mas conocimiento adquieres, más te das cuenta del que hay a tu alrededor::.
final_frontier
Wiki

Desconectado Desconectado

Mensajes: 574


WOLOLOOO! Deal with it x)


Ver Perfil
Re: Ejercicio C++
« Respuesta #2 en: 6 Noviembre 2008, 19:05 »

Verás, me explicaron cómo resolver el ejercicio, pero hay una parte del algoritmo que no entiendo, esa parte irá comentada:

#include <iostream>
#include <math.h>
#include <cstdlib>
using namespace std;

class numerito {

     unsigned int num, n, p, i;

public:
      void infor();
      void calcu();
};
void numerito::infor(){

   cout << "Introduzca la cantidad de numeros primos que quiere obtener: ";
   cin >> num;

}
void numerito::calcu(){

   n = 1000;
   i = 1;
   while(i <= num)
   {
       for(p = 2; n % p != 0; p++); //no lo cojo
       if(p == n) //esta la cojo menos aún
       {
       cout << n <<", ";
       i++;
       }
       n--;
   }
   cout << "\n" << endl;
   system("pause");
}
int main(){

numerito dato;
dato.infor();
dato.calcu();
return 0;
}

Sorry y un saludo grande
En línea

Sie ist der hellste Stern von allen und wird nie vom Himmel fallen...
AxXioma


Desconectado Desconectado

Mensajes: 795


Algunos pájaros no pueden ser enjaulados...


Ver Perfil
Re: Ejercicio C++
« Respuesta #3 en: 6 Noviembre 2008, 19:26 »

Hola, bien, aquí:

Código
void numerito::calcu(){
 
  n = 1000;
  i = 1;
  while(i <= num)
  {
      for(p = 2; n % p != 0; p++); //no lo cojo
      if(p == n) //esta la cojo menos aún
      {
      cout << n <<", ";
      i++;
      }
      n--;
  }
  cout << "\n" << endl;
  system("pause");
}

Tienes un bucle for el cual inicializa la variable p a 2, y especifica que, mientras n / p sea diferente de 0 (Condición que se tiene que cumplir para que sea primo) incremente la variable p en 1.
El if de ahí comprueba si la variable p es igual que n si es así imprime por pantalla el valor de n e incrementa la variable i en una unidad.

Te recomiendo que utilices mejores nombres para las variables, ya que es difícil de entender que haces con el programa, y utilizar líneas comentadas que faciliten la corrección al profesor.
En línea





.::Cuanto mas conocimiento adquieres, más te das cuenta del que hay a tu alrededor::.
final_frontier
Wiki

Desconectado Desconectado

Mensajes: 574


WOLOLOOO! Deal with it x)


Ver Perfil
Re: Ejercicio C++
« Respuesta #4 en: 6 Noviembre 2008, 19:28 »

Gracias, te debo una muy muy gorda, de verdad
En línea

Sie ist der hellste Stern von allen und wird nie vom Himmel fallen...
AxXioma


Desconectado Desconectado

Mensajes: 795


Algunos pájaros no pueden ser enjaulados...


Ver Perfil
Re: Ejercicio C++ (Solucionado)
« Respuesta #5 en: 6 Noviembre 2008, 19:32 »

Tranquilo, te aseguro que no es nada. Ten en cuenta otra más que creo conveniente. Si alguna vez te urge tanto como ahora la duda, busca más en google, poniendo como búsqueda "numeros primos en C++" salen cientos de míles de coincidencias y códigos que te resolverían las dudas e incluso te harían conocer una manera mejor de solventar el problema.

Saludos.
En línea





.::Cuanto mas conocimiento adquieres, más te das cuenta del que hay a tu alrededor::.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines