Christian Goldbach |
En teoría de números, la conjetura de Goldbach es uno de los problemas abiertos más antiguos en matemáticas. A veces se le califica del problema más difícil en la historia de esta ciencia. Concretamente, G.H. Hardy en 1921 en su famoso discurso pronunciado en la Sociedad Matemática de Copenhage comentó que probablemente la conjetura de Goldbach no es sólo uno de los problemas no resueltos más difíciles de la teoría de números, sino de todas las matemáticas. Su enunciado es el siguiente:
Todo número par mayor que 2 puede escribirse como suma de dos números primos. Christian Goldbach 1742
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Goldbach
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int numero;
private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void button1_Click(object sender, EventArgs e)
{
numero = int.Parse(textBox1.Text);
Boolean[] ePrimo = new Boolean[numero];
for (int i = 2; i < numero; i++)
ePrimo[i] = true;
//determina los primos < numero usando el algoritmo de la criba de Eratostenes.
for (int i=2; i*i < numero; i++)
{
if (ePrimo [i])
{
for (int j = i; i * j < numero; j++)
ePrimo[i * j] = false;
}
}
// Cuenta los primos
int primos = 0;
for (int i=2; i < numero; i++)
{
if(ePrimo[i])
{
primos++;
}
}
// Almacena los primos en una lista
int[] list = new int[primos];
int n = 0;
for( int i=0; i< numero; i++)
{
if (ePrimo[i])
{
list[n++] = i;
}
}
// Verifica si un numero puede ser expresado como suma de dos primos
int left = 0, right = primos - 1;
while (left <= right)
{
if (list[left] + list[right] == numero)
break;
else if
(list[left] + list[right] < numero) left++;
else
right--;
}
if (list[left] + list[right] == numero)
{
textBox2.AppendText(Convert.ToString(numero + " = " + list[left] + " + " + list[right]+" "+"\n"));
}
else
MessageBox.Show("Este numero no puede ser expresado como suma de dos números primos.",
"Error",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
private void button3_Click(object sender, EventArgs e)
{
textBox1.Clear();
}
}
}
http://nautilus.fis.uc.pt/mn/goldbach/index.html
http://wims.unice.fr/wims/wims.cgi?module=tool/number/goldbach.en
https://es.wikipedia.org/wiki/Conjetura_de_Goldbach
http://gaussianos.com/la-conjetura-de-goldbach/
http://www.matematicasdigitales.com/el-gran-problema-matematico-la-conjetura-de-goldbach/
http://www.macoratti.net/16/03/net_cgdb1.htm
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.