En matemáticas, un número de Kaprekar (Por: Shri Dattatreya Ramachandra Kaprekar, 1905–1986, matemático Indio) es aquel entero no negativo tal que, en una base dada, los dígitos de su cuadrado en esa base pueden ser separados en dos números que sumados dan el número original. El ejemplo más simple es 9, su cuadrado es 81 y 8+1= 9. Otro ejemplo es el número 703, su cuadrado es 494209. Si separamos 494209 en dos nuevos números, 494 y 209, obtenemos que 494 + 209 = 703. De igual forma, el número 297 también es un número de Kaprekar, ya que es posible descomponer el cuadrado 2972 = 88209 en 88 y 209.
El segundo número puede comenzar por cero, pero debe ser positivo. Un ejemplo es 999, ya que 9992=998001 y se descompone en 998 y 001. Por esto mismo, el número 100 no es un número de Kaprekar, ya que 100²=10000 y se descompone en 100 + 00, pero el segundo sumando no es positivo.Matemáticamente, sea X un entero no negativo. X es un número de Kaprekar para la base b si existen n números enteros no negativos, A y B, que satisfagan las siguientes condiciones:
0 < B < bn
X² = Abn + B
X = A + B
Los primeros números de Kaprekar en base 10 son ((sucesión A006886 en OEIS)):1, 9, 45, 55, 99, 297, 703, ...
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 Kaprekar_I_Forms
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Application.Exit();
}
ulong numeromaximo;
private void button2_Click(object sender, EventArgs e)
{
numeromaximo = ulong.Parse(textBox1.Text);
int count = 0;
foreach (ulong numeromaximo in generador(numeromaximo))
{
listBox1.Items.Add(numeromaximo.ToString());
count++;
textBox2.Text = count.ToString();
}
}
private static IEnumerable<ulong> generador(ulong max)
{
ulong next = 1;
yield return next;
for (next = 2; next <= max; next++)
{
ulong cuadrado = next * next;
for (ulong comprobar = 10; comprobar <= 10000000000000000000; comprobar *= 10)
{
if (cuadrado <= comprobar)
break;
ulong r = cuadrado % comprobar;
ulong q = (cuadrado - r) / comprobar;
if (r != 0 && q + r == next)
{
yield return next;
break;
}
}
}
}
}
}
En binario (base 2) todos los números perfectos son números de Kaprekar.
En cualquier base existen infinitos números de Kaprekar, en particular, dada una base b, todos los números de la forma bn-1 son números de Kaprekar.
Los números de Kaprekar se nombran en honor a D. R. Kaprekar.
Los primeros números de Kaprekar en base 10 son ((sucesión A006886 en OEIS)):1, 9, 45, 55, 99, 297, 703, ...
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 Kaprekar_I_Forms
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Application.Exit();
}
ulong numeromaximo;
private void button2_Click(object sender, EventArgs e)
{
numeromaximo = ulong.Parse(textBox1.Text);
int count = 0;
foreach (ulong numeromaximo in generador(numeromaximo))
{
listBox1.Items.Add(numeromaximo.ToString());
count++;
textBox2.Text = count.ToString();
}
}
private static IEnumerable<ulong> generador(ulong max)
{
ulong next = 1;
yield return next;
for (next = 2; next <= max; next++)
{
ulong cuadrado = next * next;
for (ulong comprobar = 10; comprobar <= 10000000000000000000; comprobar *= 10)
{
if (cuadrado <= comprobar)
break;
ulong r = cuadrado % comprobar;
ulong q = (cuadrado - r) / comprobar;
if (r != 0 && q + r == next)
{
yield return next;
break;
}
}
}
}
}
}
En binario (base 2) todos los números perfectos son números de Kaprekar.
En cualquier base existen infinitos números de Kaprekar, en particular, dada una base b, todos los números de la forma bn-1 son números de Kaprekar.
Los números de Kaprekar se nombran en honor a D. R. Kaprekar.
No deben confundirse con la constante de Kaprekar, que es el número 6174.
https://es.wikipedia.org/wiki/N%C3%BAmero_de_Kaprekar
https://es.wikipedia.org/wiki/N%C3%BAmero_de_Kaprekar
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.