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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Retos de programación C/C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Retos de programación C/C++  (Leído 3,236 veces)
kutcher

Desconectado Desconectado

Mensajes: 53


Ver Perfil
Retos de programación C/C++
« en: 16 Agosto 2014, 02:23 am »

Buenas, abro este post para ir publicando una serie de retos a medida que vayan resolviendo los mismo, con el objetivo estimular a la comunidad a participar mediante la resolución de problemas que competen al mundo de la programación que tanto nos apasiona

RETO #1:

Los primeros dos números consecutivos para tener dos factores primos distintos son:

Código
  1. 14 = 2 x 7
  2. 15 = 3 x 5

Los primeros tres números consecutivos para tener tres factores primos distintos son:

Código
  1. 644 = 2² x 7 x 23
  2. 645 = 3 x 5 x 43
  3. 646 = 2 x 17 x 19.

Encuentra los primeros cuatro números enteros consecutivos para tener cuatro factores primos distintos. ¿Cuál es el primero de estos números?

Espero su participación


En línea

Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Re: Retos de programación C/C++
« Respuesta #1 en: 16 Agosto 2014, 05:51 am »

Hola kutcher me parece excelente la iniciativa este tipo de actividades es lo que hacia falta a este subforo, en cuanto al primer reto lo veo difícil pero de igual manera estoy en ello  ;D

Saludos


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Retos de programación C/C++
« Respuesta #2 en: 16 Agosto 2014, 06:24 am »

no lo entendí bien, si es

Código:
2 x 3 x 5 = 30


y tienes el primer numero que requiere 3 primos diferentes...

aunque no se si te refieres el primer numero de 3 cifras tal que sea producto de 3 primos

Código:
3 x 5 x 7 = 105

es un numero más bajo que el mostrado por ti...
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Retos de programación C/C++
« Respuesta #3 en: 16 Agosto 2014, 08:47 am »

¡Buenas!

no lo entendí bien, si es

Código:
2 x 3 x 5 = 30


y tienes el primer numero que requiere 3 primos diferentes...

aunque no se si te refieres el primer numero de 3 cifras tal que sea producto de 3 primos

Código:
3 x 5 x 7 = 105

es un numero más bajo que el mostrado por ti...

De forma general, se refiere a que k enteros consecutivos, tengan m factores primos distintos.

Si quieres plantear el problema de forma general podrías hacer una función que, por ejemplo, reciba tres parámetros, k y m enteros y un vector de dimensión k, y almacene en el vector los primeros k enteros consecutivos que tengan exactamente m factores primos distintos.

¡Saludos!
En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Retos de programación C/C++
« Respuesta #4 en: 16 Agosto 2014, 11:26 am »

Buenas, abro este post para ir publicando una serie de retos a medida que vayan resolviendo los mismo, con el objetivo estimular a la comunidad a participar mediante la resolución de problemas que competen al mundo de la programación que tanto nos apasiona


Encuentra los primeros cuatro números enteros consecutivos para tener cuatro factores primos distintos. ¿Cuál es el primero de estos números?

Espero su participación

Código
  1.  
  2. 134043 =  3  * 7 * 13 * 491
  3. 134044 =  2^2 *  23 * 31  * 47  
  4. 134045 =  5 *  17 * 19 *  83
  5. 134046 =  2 * 3^2 * 11 * 677
  6.  
  7.  

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


« Última modificación: 16 Agosto 2014, 11:38 am por leosansan » En línea

Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Re: Retos de programación C/C++
« Respuesta #5 en: 16 Agosto 2014, 16:26 pm »

Encuentra los primeros cuatro números enteros consecutivos para tener cuatro factores primos distintos. ¿Cuál es el primero de estos números?

Tal vez no sea la solución mas rápida pero ira mejorando:

Código
  1. #include <stdio.h>
  2.  
  3. int factor_primo(int n)
  4. {
  5.    int cant = 0, i;
  6.    for( i = 2; n != 1; i++)
  7.        if(n % i == 0)
  8.        {
  9.            cant++;
  10.            do
  11.                n = n / i;
  12.            while(n % i == 0);
  13.        }
  14.    return cant;
  15. }
  16.  
  17. int main(void)
  18. {
  19.    int n = 0;
  20.    int i, c = 0;
  21.  
  22.    for(i = 100000 ;; i++)
  23.    {
  24.       (factor_primo(i) == 4) ? c++ : (c = 0);
  25.  
  26.        if (c == 4)
  27.        {
  28.            n = i - 3;
  29.            break;
  30.        }
  31.    }
  32.    for(i = 0; i < 4; i++)
  33.       printf("%d\n", n + i);
  34.  
  35.    return 0;
  36. }
  37.  
  38.  

Seria interesante que publiquen los códigos con los cuales resuelven el problema
« Última modificación: 16 Agosto 2014, 18:16 pm por Blaster » En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Retos de programación C/C++
« Respuesta #6 en: 17 Agosto 2014, 07:23 am »

Tal vez no sea la solución mas rápida pero ira mejorando:
..............................................
Seria interesante que publiquen los códigos con los cuales resuelven el problema

No dudo que lo podamos mejorar, aunque a bote pronto no veo por donde.

Respecto a lo de publicar código siento haber puesto la otra noche la solución sin el mismo pero los habituales del foro creo que me comprenderán. Se debe a que en estos últimos tiempos cuando cuelgo código en el foro o me lo borran directamente o sencillamente bloquean el tema y esto último me hubiera dolido ya que habría afectado a todos los seguidores del tema por mi culpa. Y es que me zumban todavía en mis oídos unas palabras de engel lex: "León para que pones código si sabes que te lo van a borrar".

Pero en vista de que, por ahora al menos, eso no ha pasado, paso a poner mi código que básicamente es similar al ya expuesto sólo que no hago uso de función, más que nada para no tener que estar llamando a la misma tropecientas veces y esperando su respuesta, y que es más "cortito", está compactado como simple ejercicio. Lo habría hecho más cortito sin tanto define pero por claridad y facilidad para cambiar (podemos calcular qué dos enteros tienen dos factores, o tres tres, o tres cuatro, o cuatro cuatro o ....). Creo que venía bien, así como los nombres dados a las variables. Son largos pero sabes en cada momento qué diablos hace cada variable:   ;)

Código
  1. #include <stdio.h>
  2. #define NumFactores 4u
  3. #define NumEnteros 4u
  4. #define NumInicial 130000u
  5.  
  6. int main ( ) {
  7.  unsigned int i , numero , inumero = NumInicial , divisor = 2 , contEnteros = 0 , num_fact = 0 ;
  8.  while ( 1 ) {
  9.    num_fact = 0 , numero = inumero++ ;
  10.    while ( numero > 1 )
  11.      for( divisor = 2 ; numero > 1 ; divisor++ )
  12.        if ( numero % divisor == 0 && num_fact++ >= 0 ) {
  13.          while ( ( numero /= divisor ) % divisor == 0 ) ;
  14.        }
  15.    if ( ( contEnteros = ( num_fact == NumFactores ) ? contEnteros + 1 : 0 ) == NumEnteros ) {
  16.      for ( i = 0 ; i < NumEnteros ; i ++ )
  17.        printf ( "%u   " , inumero - NumEnteros + i )  ;
  18.      break ;
  19.      }
  20.  }
  21.  return 0;
  22. }

Y ojito a la variable "NumInicial" ya que si vas a calcular los tres primeros enteros que tengan tres factores habrá que bajarla a algo como 600 (eso es porque ya lo he calculado y sé que salen algo superior a 600  :laugh: ) o a 20 si vas a calcular qué dos enteros tienen dos factores, etc. Lo propio sería ponerla a 2 y así vale para cualquier valor sólo que se penaliza el tiempo de respuesta.  :o

Y sin otro particular, y a la espera de nuevos Retos, un fuerte abrazo a todos de León.

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



P.D: Sólo espero que no sea una tarea disfrazada de Reto.  :silbar:
« Última modificación: 17 Agosto 2014, 09:23 am por leosansan » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Retos de programación C/C++
« Respuesta #7 en: 17 Agosto 2014, 09:41 am »

Hola kutcher me parece excelente la iniciativa este tipo de actividades es lo que hacia falta a este subforo, en cuanto al primer reto lo veo difícil pero de igual manera estoy en ello  ;D

Bueno, para mi no le faltaba nada al foro y ahora le sobra este hilo, da la impresion de que no hay nada util que hacer estos dias (como si estuvieran jubilados o no hubieran trabajado jamas), nadie a quien ayudar con problemas reales y entonces tienen que estar retandose entre los usuarios para tener un objetivo y subir codigo compulsivamente.

Aca tienen un par de nuevos retos en serio y no solamente malas excusas para subir codigo al foro:
Hagan un programa para generar una imagen de un disco rigido (como VHD y VMDK).
Hagan un antivirus con scanner en tiempo real.
Creen una solucion a un problema real: BadUSB.
Creen un tutorial sobre como optimizar codigo, asi nos ahorran 15.000 versiones de soluciones al mismo problema.



leosansan: cuando usas el foro como chat o incluis alusiones a un usuario que no esta participando del hilo - no es la primera vez - tambien te puedo editar y/o borrar el mensaje, que lo sepas; si tenes alguna queja este subforo nunca es el lugar donde hacerla, nunca, te podes comunicar por privado o escribir en "Sugerencias y dudas sobre el Foro" como ya hicieron en su momento, te recuerdo que no hubo ningun cambio de reglas desde ese momento y son las mismas desde antes de que te registraras al foro. Mi postura tambien sigue siendo la misma, algo de codigo es aceptable hasta cierto punto, pero cuando se nota que no aporta nada: "No dudo que lo podamos mejorar, aunque a bote pronto no veo por donde." ya no es aceptable y se bloquea el tema. Espero que tu postdata fuera una broma.



En general creense un Blog/Foro si quieren retarse con problemas elementales (o incluso complejos) y si solo quieren subir codigo esta sourceforge por ejemplo, piensen algo proyecto util.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Funcionamiento de los IDE de los retos de programación en WarZone..
WarZone
sirdarckcat 0 3,782 Último mensaje 3 Junio 2007, 10:14 am
por sirdarckcat
Retos
Desafíos - Wargames
@synthesize 8 9,246 Último mensaje 13 Junio 2010, 04:24 am
por @synthesize
Retos C/C++ « 1 2 ... 8 9 »
Ejercicios
[L]ord [R]NA 85 52,752 Último mensaje 3 Octubre 2010, 16:57 pm
por Komodo
Retos .Net « 1 2 3 »
Ejercicios
[D4N93R] 20 19,171 Último mensaje 6 Diciembre 2010, 03:26 am
por final_frontier
Retos C/C++
Programación C/C++
N0body 5 10,588 Último mensaje 9 Mayo 2011, 09:54 am
por ghastlyX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines