• Sábado 14 de Diciembre de 2024, 23:05

Autor Tema:  Problema Al Sacar Nº Primos  (Leído 2042 veces)

Linkup

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Problema Al Sacar Nº Primos
« en: Martes 15 de Junio de 2004, 22:03 »
0
Estoy haciendo un prgormama para sacar los n primos y lo tengo casi listo pero me da un error en la linea 21 (bajenlo para verlo)

Código: Text
  1. if ((numero%primos[contador])=0)
  2.  

me pueden decir que es???
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

-SB-

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: Problema Al Sacar Nº Primos
« Respuesta #1 en: Miércoles 16 de Junio de 2004, 00:31 »
0
Intentas asignar 0 a numero%primos[contador] y esa operacion no esta permitida, seguramente lo que tu quieres hacer es mirar si es igual a cero, y para eso debes usar el operador == en lugar de =, asi:

Código: Text
  1.  
  2. if ((numero%primos[contador])==0)
  3.  
  4.  

Es posible que estes acostumbrado a algun otro lenguaje donde se utilice el = para hacer la comparacion.

Los errores de compilacion no suelen ser dificiles de encontrar, son mas problematicos los de ejecucion, cuando el programa no hace lo que queremos jejejeje

Bueno, espero q te haya sido de ayuda,

Un saludo!!

Linkup

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Problema Al Sacar Nº Primos
« Respuesta #2 en: Miércoles 16 de Junio de 2004, 01:35 »
0
gracias era eso pero ahora no hace lo que yo quiero :(... parece q los numeros no pasan por el for para la comprobacion :( y me tira solo el 2 :(


ayuda!!

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
Re: Problema Al Sacar Nº Primos
« Respuesta #3 en: Miércoles 16 de Junio de 2004, 02:13 »
0
Código: Text
  1.  
  2.  
  3.   for(int numero =3; numero<=numingresado; numero=(numero+1))
  4.        {
  5.     for(contador; contador<=ndeprimos; contador=(contador+1))
  6.                {
  7.  
  8.       if ((numero%(primos[contador]))==0)
  9.                        {
  10.                                 divisible++;
  11.                        }
  12.  
  13.                }
  14.     if (divisible==0)
  15.                {
  16.       primos[contador+1]=numero;
  17.       ndeprimos++;
  18.     }
  19.   }
  20.  
  21.  
  22.  

El fragmento de codigo anterior no te lo entiendo... si colocas un for inicial cuya condicion es: mientras numero sea menor o igual al numero ingresado ... bueno eso lo entiendo.. pero el segundo for tiene una condicion que mmm...  no comprendo como funciona ; si dices que el ciclo se debe ejecutar mientras que contador sea menor que ndeprimos.. pero ambas variables enteras son inicializados en 1 por lo tanto la segunda ves que el ciclo se valla a ejecutar la variabal contador ya es mayor que ndeprimos por lo tanto no va a entrar de nuevo a ese cilco .... mmm bueno eso el lo que yo veo asi por encima  ... y lo que entiendo de lo que hiciste de codigo.. si entendí mal te agradeceria que me lo aclararas y si para entonces aun no has logrado resolver entonces miramos a ver como nas te ayudo..

Saludos
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]

Linkup

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Problema Al Sacar Nº Primos
« Respuesta #4 en: Miércoles 16 de Junio de 2004, 02:35 »
0
Cita de: "The Black Boy"
Código: Text
  1.  
  2.  
  3.   for(int numero =3; numero<=numingresado; numero=(numero+1))
  4.        {
  5.     for(contador; contador<=ndeprimos; contador=(contador+1))
  6.                {
  7.  
  8.       if ((numero%(primos[contador]))==0)
  9.                        {
  10.                                 divisible++;
  11.                        }
  12.  
  13.                }
  14.     if (divisible==0)
  15.                {
  16.       primos[contador+1]=numero;
  17.       ndeprimos++;
  18.     }
  19.   }
  20.  
  21.  
  22.  

El fragmento de codigo anterior no te lo entiendo... si colocas un for inicial cuya condicion es: mientras numero sea menor o igual al numero ingresado ... bueno eso lo entiendo.. pero el segundo for tiene una condicion que mmm...  no comprendo como funciona ; si dices que el ciclo se debe ejecutar mientras que contador sea menor que ndeprimos.. pero ambas variables enteras son inicializados en 1 por lo tanto la segunda ves que el ciclo se valla a ejecutar la variabal contador ya es mayor que ndeprimos por lo tanto no va a entrar de nuevo a ese cilco .... mmm bueno eso el lo que yo veo asi por encima  ... y lo que entiendo de lo que hiciste de codigo.. si entendí mal te agradeceria que me lo aclararas y si para entonces aun no has logrado resolver entonces miramos a ver como nas te ayudo..

Saludos
haci es pero se supone q el primer nº q ingresa es el tres y es primo si que se agrgega al array y se suma al nd eprimos osea el segundo nº (4) se va a dividir 2 veces x 2 y x 3 ese for hace q se ejecute la la misma cantidad de veces como numeros primos he sacado anteriromente (siempre partiendo con 1 q es el 2)

pero no funca :( espero q mi explicacion ayude a resolverlo ;) :unsure:

mi nuevo codigo
Código: Text
  1. #include <iostream.h>
  2. #include <conio.h>
  3.  
  4. int main()
  5. {
  6. int numero =3;
  7. int ndeprimos = 1;
  8. int numingresado=0;
  9.     int contador;
  10.     int divisible;
  11.     int nodivisible;
  12.  
  13.   cout << "Introdusca hasta que numero quiere sacar primos\n";
  14.   cin >> numingresado;
  15.  
  16.   int primos[numingresado];
  17.  
  18.   primos[1]=2;
  19.   //inicio for para sacar primo
  20.  
  21.   for(; numero<=numingresado; numero++){
  22.    
  23.     contador =1;
  24.     divisible=0;
  25.     nodivisible=0;
  26.     for(; contador<=ndeprimos;contador++){
  27.       if ((numero%primos[contador])== 0)
  28.         divisible++;
  29.     }
  30.    
  31.     if (divisible=0){
  32.       ndeprimos++;
  33.       (primos[ndeprimos])=numero;  
  34.     }
  35.    
  36.   }
  37.   //fin for para sacar primo
  38.  
  39.   //imprimir
  40.  
  41.   for ( int imprimir=1; imprimir <= ndeprimos; imprimir++)
  42.     cout << primos[imprimir] <<"\n";
  43.  
  44.   getch();
  45.  
  46.   return 0;
  47.  

Linkup

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Problema Al Sacar Nº Primos
« Respuesta #5 en: Miércoles 16 de Junio de 2004, 23:39 »
0
Código: Text
  1. #include <iostream.h>
  2. #include <conio.h>
  3.  
  4. int main()
  5. {
  6. int numero =3;
  7. int ndeprimos = 1;
  8. int numingresado=0;
  9.     int contador;
  10.     int divisible;
  11.     int nodivisible;
  12.  
  13.   cout << "Introdusca hasta que numero quiere sacar primos\n";
  14.   cin >> numingresado;
  15.  
  16.   int primos[numingresado];
  17.  
  18.   primos[1]=2;
  19.   //inicio for para sacar primo
  20.  
  21.   while( numero<=numingresado){
  22.    
  23.    contador =1;
  24.     divisible=0;
  25.     nodivisible=0;
  26.     while(contador<=ndeprimos){
  27.       if ((numero%primos[contador])== 0){
  28.      //       cout<<contador<<"\t"<<ndeprimos<<"\t"<<numero<<"\n";
  29.             divisible++;
  30.             break;
  31.       }
  32.         contador++;
  33.    
  34.     }
  35.     if (divisible==0){
  36.       ndeprimos++;
  37.      
  38.      
  39.       primos[ndeprimos]=numero;  
  40.    
  41.     }
  42.   numero++;  
  43.   }
  44.   //fin for para sacar primo
  45.  
  46.   //imprimir
  47.  
  48.   for ( int imprimir=1; imprimir <= ndeprimos; imprimir++)
  49.     cout << primos[imprimir] <<"\n";
  50.  
  51.   getch();
  52.  
  53.   return 0;
  54.   }
  55.  

este funciona!!!!!!!

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
Re: Problema Al Sacar Nº Primos
« Respuesta #6 en: Jueves 17 de Junio de 2004, 01:10 »
0
que bueno que te halla salido... de esa manera uno aprende mas , que si te lo hubieran resuelto..

Saludos  ;)
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]