Título: Conjetura de Goldbach en C++ Publicado por: seryioo en 27 Julio 2015, 20:41 pm Buenas, aquí sigo con programación I. Tengo que hacer un ejercicio en el que hay que introducir un número n, par, en el teclado y descomponerlo en la suma de 2 números primos.
Lo único que puedo manejar son bucles y crear subprogramas. Código
Título: Re: Conjetura de Goldbach en C++ Publicado por: joecarl en 27 Julio 2015, 23:45 pm Haz una función que compruebe si un número es primo.
Haz otra función que recorra todos los número menores que "n", en cada iteración usa la función q creaste para comprobar que tanto " i" como "n - i" son primos. Pseudo código: HallarSuma(int n) Para i =0 hasta n Si esPrimo(i) y esPrimo(n-i) Mostrar i y n-i Fin si Fin para Fin hallarSuma Título: Re: Conjetura de Goldbach en C++ Publicado por: seryioo en 28 Julio 2015, 10:17 am Vale, algo más claro, pero sigo teniendo la duda de cómo hacer la función "sumadeprimos" ya que tendría que hacer combinaciones de 2 números primos hasta que su suma fuera n, pero no se como hacer eso.
Adjunto el código. Código
Título: Re: Conjetura de Goldbach en C++ Publicado por: engel lex en 28 Julio 2015, 11:15 am sobre el numero primo, este es el algoritmo que llevo usando un tiempo por cosas de eficiencia :P
Código
para sumadeprimos, recomiendo lo siguiente sabemos que n debe ser par, los 2 números mayores que suman uno par, es el numero /2 de ahí puedes empezar a buscar por el numero/(2-i), siendo i=1 al inicio, el otro numero es eso numero-(numero/(2-i))... así vas incrementando 1 a i para ver si es suma de 2 primos... si numero/2-i==1, no existen 2 primos que sumados den tu resultado Título: Re: Conjetura de Goldbach en C++ Publicado por: joecarl en 28 Julio 2015, 11:19 am Tal y como te indiqué en el pseudocode:
HallarSuma(int n) Para i =2 hasta n Si esPrimo(i) y esPrimo(n-i) Mostrar i y n-i Fin si Fin para Fin hallarSuma Que sería: Código
No he probado el código pero imagino que funcionará, ese código es que invertirá menos tiempo en ejecutarse pero quizá haya que refinarlo un poco. EDIT: he cambiado i=0 por i=2 como condicion inicial en el for ya que ni el 0 ni el 1 son primos segun wikipedia. Título: Re: Conjetura de Goldbach en C++ Publicado por: seryioo en 28 Julio 2015, 11:43 am Si, tu codigo funciona perfectamente, ahora estoy intentado entenderlo...
No entiendo bien qué se está haciendo en el if y por qué un primo es primo(i) y otro primo(n-i) PD: Vale , ya se lo que haces Gracias engel lex y joecarl |