elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Escribir todos los numero multiplos de B que estan en A
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Escribir todos los numero multiplos de B que estan en A  (Leído 1,295 veces)
luisgonzalo4

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Escribir todos los numero multiplos de B que estan en A
« en: 28 Octubre 2014, 00:59 am »

Hola comunidad del el hacker.net !

en la universidad me plantearon el siguiente ejercicio

Escribir todos los números múltiplos de B que están en A

A=(a,b)

a= El numero mas grande para menor que 1000 y que es primo
b=el numero mas pequeño pero mayor que 2000, que es primo gemelo

los eh estado haciendo pero no estoy seguro si es de la forma en que lo hice

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(){
  4.       int i,n,n2;
  5.       n=0;
  6.       printf("introduzca el numero: ");
  7.       scanf("%d",&n);
  8.  
  9.       if(n<2027){
  10.          for(i = 1; n2<2027; i++){
  11.                n2=n*i;
  12.                       if(n2<=2027 && n2>=997)
  13.                                  printf("%d ",n2);
  14.                                  }
  15.                                  }
  16.                  else if(n>2027){
  17.                  printf("No hay multiplo en el intervalo deseado");}
  18.        printf("\n");
  19.        system("pause");
  20.        }
  21.  


El profesor no me dio a entender muy bien a lo que se referia con lo de a= El numero mas grande para menor que 1000 y que es primo
b=el numero mas pequeño pero mayor que 2000, que es primo gemelo.

La verdad me tiene confundido esta parte: en Internet y me sale que el primo mas grande pero menor a 1000 es 997 y el primo gemelo mas pequeño pero mayor a 2000 es 2027 pues es gemelo con 2029.




« Última modificación: 28 Octubre 2014, 01:26 am por luisgonzalo4 » En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Escribir todos los numero multiplos de B que estan en A
« Respuesta #1 en: 30 Octubre 2014, 22:42 pm »

Creo que lo has interpretado de forma adecuada, sólo un par de observaciones:

* Como main es una función de tipo int requiere de un return.

* En:

Código
  1. if(n2<=2027 && n2>=997)

te sobra lo de n2<=2027 ya que es una condición del for.

* Es más, el for,  si n = 123 en lugar de empezarlo por 1 lo empezaría por 9 porque fíjate que si n es 123 estarías probando:
123 * 1 = 123 < 997==> no se imprime.
123 * 2 = 246 < 997==> no se imprime.
........................................................
123 * 8 = 984 < 997==> no se imprime.
123 * 9 = 1107 > 997==> SI se imprime.

Y ese "9" es ni más ni menos que: 1 + 997 / n, en este ejemplo más concreto con n= 123 sería 1 + 997 / 123, con lo que ahorrarías cálculos innecesarios y además te sobraría el if anterior.

* De paso te puedes ahorrar la variable n2.

* Procura indentar el código de forma racional.  ;)

Yo te propondría:

Código
  1. #include <stdio.h>
  2.  
  3. int main ( void ) {
  4.  int i , n ;
  5.  printf ("introduzca el numero: " ) ;
  6.  scanf ( "%d" , &n  );
  7.  if( n < 2027 ) {
  8.    for ( i = 1 + 997 / n ; i * n < 2027 ; i++ )
  9.      printf ( "%d " , i * n ) ;
  10.  }
  11.  else
  12.    puts ( "No hay multiplo en el intervalo deseado" ) ;
  13.  putchar ( '\n' ) ;
  14.  return 0 ;
  15. }

¡¡¡¡ Saluditos! ..... !!!!




 


« Última modificación: 30 Octubre 2014, 23:04 pm por leosansan » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines