Conjetura de Goldbach

PABLO MANSO GARCÍA-MAURIÑO

/* Se trata de un programa que escribe todos los números pares menores que uno dado como suma de dos números primos (la conjetura de Goldbach afirma que esto es posible para todo número par mayor que dos). */

#include<stdio.h>
#include<math.h>

#define MAX 594

int es_primo (int n);
void solve(int n);

int main()
{
int n, i;
do{
printf(“Introduce un numero par : \n”);
scanf(“%d”,&n);
}while (n%2!=0 || n==2 || n>MAX);

printf(“Los numeros pares menores e iguales que %d exceptuando el 2 se pueden expresar como la suma de dos primos: \n”, n);

for(i=4;i<=n;i+=2)  solve(i);

return 0;
}

int es_primo (int n)
{
int i;
if(n==2) return 1;
if(n%2==0) return 0;
for(i=3;i<=sqrt(n);i++)
if (n%i==0) return 0;

return 1;
}

void solve(int n)
{
int i=2, j;
while(1)
{
while(!es_primo(i)) i+=2;
j=n-i;
if(es_primo(j))
{
printf(“%d = %d + %d \n”, n, i, j);
return;
}
if(i==2) i++;
else i+=2;
}
}

Anuncios
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s