Un número de Lychrel es un número natural que no puede formar un palíndromo a través del proceso iterativo repetitivo de invertir sus dígitos y sumar los números resultantes. Este proceso es a veces llamado algoritmo-196 (en inglés 196-algorithm), a raíz del número más famoso asociado con el proceso. En base decimal, no ha sido demostrado que los números de Lychrel existan, pero algunos, incluyendo el 196, son sospechosos por motivos estadísticos y de heurística. El nombre «Lychrel» fue acuñado por Wade VanLandingham como un anagrama aproximado de Cheryl, el nombre de su novia.
A partir de un número inicial en base decimal, se realiza la suma de este y su número invertido, es decir, el número resultante de la inversión del orden en el que aparecen sus dígitos. Por ejemplo, para 124 se tiene que 124 + 421 = 545. Repitiendo el mismo proceso con los números resultantes, si alguno de ellos es un palíndromo, entonces el número inicial no es un número de Lychrel.
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;
using IntXLib;
namespace Lychrel_IV_Forms
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
int numeromaximo;
private void button1_Click_1(object sender, EventArgs e)
{
numeromaximo = int.Parse(textBox1.Text);
int contador = 0;
for (int i = 1; i < numeromaximo; i++)
{
IntX iteracionTotal = new IntX(i);
for (int iteracion = 0; iteracion < 51; iteracion++)
{
if (iteracion == 50)
{
listBox1.Items.Add(i.ToString() + " Lychrel");
contador++;
break;
}
iteracionTotal += ReversoNumero(iteracionTotal);
if (Palindromo(iteracionTotal.ToString()))
{
listBox2.Items.Add(i + " Palindromo");
break;
}
}
}
textBox2.Text = contador.ToString();
}
A partir de un número inicial en base decimal, se realiza la suma de este y su número invertido, es decir, el número resultante de la inversión del orden en el que aparecen sus dígitos. Por ejemplo, para 124 se tiene que 124 + 421 = 545. Repitiendo el mismo proceso con los números resultantes, si alguno de ellos es un palíndromo, entonces el número inicial no es un número de Lychrel.
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;
using IntXLib;
namespace Lychrel_IV_Forms
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
int numeromaximo;
private void button1_Click_1(object sender, EventArgs e)
{
numeromaximo = int.Parse(textBox1.Text);
int contador = 0;
for (int i = 1; i < numeromaximo; i++)
{
IntX iteracionTotal = new IntX(i);
for (int iteracion = 0; iteracion < 51; iteracion++)
{
if (iteracion == 50)
{
listBox1.Items.Add(i.ToString() + " Lychrel");
contador++;
break;
}
iteracionTotal += ReversoNumero(iteracionTotal);
if (Palindromo(iteracionTotal.ToString()))
{
listBox2.Items.Add(i + " Palindromo");
break;
}
}
}
textBox2.Text = contador.ToString();
}