Ciencia y TecnologíaNacionalNacionales

Una formidolosa alcaldesa vampiresa

En esta ocasión nos embarcamos en el estudio de unos peculiares números cuyo nombre lo es aún más.

A pesar de la sencillez de su concepto, no fueron descritos sino hasta 1994 por Clifford Pickover. Su análisis permanece abierto. Seguro que aún esconden propiedades interesantes a la espera de ser develadas por las mentes inquietas.

ACERTIJO

¡Ponte a prueba e inténtalo!

Expectantes y gustosos leeremos sus sugerencias, observaciones o propuestas de resolución alternativa.

SOLUCIÓN

Si bien el tratamiento de este problema es un tanto laborioso, su planteamiento es bastante llano. Solo es preciso entender cómo funciona el sistema de numeración con el que convivimos en nuestro día a día.

Con esto en mente, nos ha parecido oportuno incluir un breve apartado que proporcione algunos pormenores del tema. El lector familiarizado con ellos puede omitirlo sin problemas.

El sistema decimal posicional de numeración

De todos es conocido que los números naturales desde el cero hasta el nueve se designan con sendos símbolos individuales1:

\begin{equation}
          0,\,1,\,2,\,3,\,4,\,5,\,6,\,7,\,8,\,9
\end{equation}

Llamamos a los tales, cifras del sistema decimal de numeración. El resto de números naturales puede construirse con combinaciones de estas.

Así, una misma cifra tendrá distinto sentido según se posicione respecto de las demás en la escritura del número (de allí el carácter posicional referido). Por ejemplo, las combinaciones 4 521 y 4 125, pese a contener cifras idénticas, representan números naturales diferentes.

En cualquier caso, la cifra situada en el extremo derecho de un número así dispuesto indicará la cantidad de unidades; la que le sucede hacia la izquierda, la cantidad de decenas; la que se encuentra en tercer lugar, la cantidad de centenas; la que en el cuarto lugar, las unidades de millar, etc.

En general, la expresión

\begin{equation}
          n_kn_{k-1}n_{k-2}\ldots n_2n_1n_0
\end{equation}

donde n_k,\,n_{k-1},\,n_{k-2},\ldots,\,n_2,\,n_1,\,n_0 son cifras, es la representación condicional del número

\begin{equation}
\begin{split}
          n_k\cdot10^k+n_{k-1}\cdot10^{k-1}+n_{k-2}\cdot10^{k-2}+ \dotsb\\
          \\\dotsb+n_2\cdot10^2+n_1\cdot10^{\color{LightGray}1}+n_0\color{LightGray}\cdot10^0
\end{split}
\end{equation}

A título de ejemplo,

4\,521=4\cdot10^3+5\cdot10^2+2\cdot10^{\color{LightGray}1}+1\color{LightGray}\cdot10^0

Las potencias de 10 aquí utilizadas son elementos de un conjunto mayor que contiene a todas las potencias enteras de 10. Decimos de tal, que es una base, pues nos permite generar cualquier número (no necesariamente entero) como combinación de sus elementos y las cifras del sistema decimal.

Esta es, en notación simbólica:

\begin{equation}
          \mathcal{B}=\left\{\ldots,10^{-3},\,10^{-2},\,10^{-1},\,10^0,\,10^1,\,10^2,\,10^3,\ldots\right\}
\end{equation}

Así pues, en términos de ella, la representación del número 796,38 sería

\def \arraystretch{2.5}
\begin{array}{rcl}
          796,38&=&\color{MediumSlateBlue}7\cdot10^2+9\cdot10^1+6\cdot10^0\color{MediumTurquoise}+3\cdot10^{-1}+8\cdot10^{-2}\\
         &=&\color{MediumSlateBlue}7\cdot100+9\cdot10+6\cdot1\color{MediumTurquoise}+\displaystyle \frac{3}{10}+\frac{8}{100}\\
         &=&\color{MediumSlateBlue}700+90+6\color{MediumTurquoise}+0,3+0,08
\end{array}

Con mayor generalidad, cualquier número real, x, puede ser escrito como

\begin{equation}
          x=\mathrm{sgn}\left(x\right)\cdot\sum_{k\,\in\,\mathbb{Z}}n_k\cdot10^k
\end{equation}

con

n_k\in\left\{0,\,1,\,2,\,3,\,4,\,5,\,6,\,7,\,8,\,9\right\}

y siendo \mathrm{sgn}\,x la función signo,

\def \arraystretch{2}
\begin{array}{c}
        \mathrm{sgn}:\mathbb R \longrightarrow \left\{-1,0,1\right\}\\
          x\longmapsto\mathrm{sgn}\,x
\end{array}

definida por tramos como sigue:

\mathrm{sgn}\,x=
\left\{
          \def\arraystretch{1.25}
          \begin{array}{rcl}
                    -1&\text{si }& x<0\\
                    0&\text{si } &x=0\\
                    1&\text{si } &x>0\\
          \end{array}
\right.

Las 12 posibilidades

Hecha esta exposición, queda claro que un entero positivo de cuatro cifras, n, con representación condicional

abcd

expresa la cantidad

a\cdot10^3+b\cdot10^2+c\cdot10+d

Por consiguiente, para identificar las posibles parejas de colmillos, listaremos los 24 productos (escritos también en su forma condicional) que con las combinaciones de las cifras en cuestión pueden formarse:

\def \arraystretch{1.5}
\begin{array}{ccccccc}
          ab\cdot cd&&ba\cdot cd&&\cancel{ca\cdot bd}&&\cancel{da\cdot bc}\\
          ab\cdot dc&&ba\cdot dc&&ca\cdot db&&\cancel{da\cdot cb}\\
          ac\cdot bd&&\cancel{bc\cdot ad}&&\cancel{cb\cdot ad}&&\cancel{db\cdot ac}\\
          ac\cdot db&&bc\cdot da&&cb\cdot da&&\cancel{db\cdot ca}\\
          ad\cdot bc&&\cancel{bd\cdot ac}&&\cancel{cd\cdot ab}&&\cancel{dc\cdot ab}\\
          ad\cdot cb&&bd\cdot ca&&\cancel{cd\cdot ba}&&\cancel{dc\cdot ba}\\
\end{array}

Una simple inspección nos permitirá advertir que algunos productos son idénticos, pues los componen los mismos factores, aunque en orden inverso. De tales podemos prescindir.

Tenemos así 12 posibilidades (siempre y cuando los dígitos de las unidades de cada factor no sean simultáneamente cero):

\begin{equation}
\small
n\stackrel{?}{=}
\color{LightGray}
\left\{
\color{#666666}
\def \arraystretch{1.5}
\begin{array}{l}
          \left(10a+b\right)\left(10c+d\right)\\
          \left(10a+b\right)\left(10d+c\right)\\
          \left(10a+c\right)\left(10b+d\right)\\
          \left(10a+c\right)\left(10d+b\right)\\
          \left(10a+d\right)\left(10b+c\right)\\
          \left(10a+d\right)\left(10c+b\right)\\\\
          \left(10b+a\right)\left(10c+d\right)\\
          \left(10b+a\right)\left(10d+c\right)\\
          \left(10b+c\right)\left(10d+a\right)\\
          \left(10b+d\right)\left(10c+a\right)\\\\
          \left(10c+a\right)\left(10d+b\right)\\
          \left(10c+b\right)\left(10d+a\right)\\
\end{array}
\right.
\end{equation}

Supongamos, por ejemplo, que deseamos averiguar si 1 395 es un número vampiro. De serlo, sus colmillos deben de ser alguna de las siguientes parejas de factores

\small
1\,395\stackrel{?}{=}
\color{LightGray}
\left\{
\color{#666666}
\def \arraystretch{1.5}
\begin{array}{lcc}
          13\cdot95&&\color{IndianRed}\xcancel{\phantom{|.}}\\
          13\cdot59&&\color{IndianRed}\xcancel{\phantom{|.}}\\
          19\cdot35&&\color{IndianRed}\xcancel{\phantom{|.}}\\
          19\cdot53&&\color{IndianRed}\xcancel{\phantom{|.}}\\
          15\cdot39&&\color{IndianRed}\xcancel{\phantom{|.}}\\
          15\cdot93&&\color{MediumSeaGreen}\checkmark\\\\
          31\cdot95&&\color{IndianRed}\xcancel{\phantom{|.}}\\
          31\cdot59&&\color{IndianRed}\xcancel{\phantom{|.}}\\
          39\cdot51&&\color{IndianRed}\xcancel{\phantom{|.}}\\
          35\cdot91&&\color{IndianRed}\xcancel{\phantom{|.}}\\\\
          91\cdot35&&\color{IndianRed}\xcancel{\phantom{|.}}\\
          93\cdot51&&\color{IndianRed}\xcancel{\phantom{|.}}\\
\end{array}
\right.

En vista de la existencia de un par que cumple los requerimientos, 1\,395=15\cdot93=93\cdot15, concluimos que se trata, en efecto, de un número vampiro.

Pretender hallar así todos los números vampiro de 4 cifras sería sumamente engorroso. No obstante, si el lector dispone de la paciencia, las fuerzas y el tiempo suficiente, ¡lo invitamos a intentarlo!

Afortunadamente y tal como lo hicimos en el reto de «Desmoche de congresistas en plétora», podemos echar mano de algunas de las tecnologías de cómputo de las que hoy día disponemos.

En esta ocasión nos ha parecido instructivo diseñar unos sencillos programas en lenguaje Java (por lo intuitivo de su sintaxis).

Un algoritmo útil, aunque no ideal

Este primero y rudimentario programa2 analiza cada uno de los enteros entre 1 000 y 9 999. De cada uno extrae las cuatro cifras que lo conforman y comprueba si resulta ser idéntico a alguna de las posibilidades dadas en \left(6\right).

public class NumerosVampiro1
{
    public static void main(String[] args)
    {
        for (int n = 1000; n <= 9999; n++)
        {
            int a = n / 1000;                 //  El dígito de las unidades de millar
            int b = (n - 1000 * a) / 100;               //  El dígito de las centenas
            int c = (n - 1000 * a - 100 * b) / 10;      //  El dígito de las decenas
            int d = n - 1000 * a - 100 * b - 10 * c;    //  El dígito de las unidades

            //  Etapa de comparación e impresión de resultados.

            if (n == (10 * a + b) * (10 * c + d))      //  Posibilidad 1.ª
                System.out.println(n + " = " + (10 * a + b) + " · " + (10 * c + d));
            else if (n == (10 * a + b) * (10 * d + c)) //  Posibilidad 2.ª
                System.out.println(n + " = " + (10 * a + b) + " · " + (10 * d + c));
            else if (n == (10 * a + c) * (10 * b + d)) //  Posibilidad 3.ª
                System.out.println(n + " = " + (10 * a + c) + " · " + (10 * b + d));
            else if (n == (10 * a + c) * (10 * d + b)) //  Posibilidad 4.ª
                System.out.println(n + " = " + (10 * a + c) + " · " + (10 * d + b));
            else if (n == (10 * a + d) * (10 * b + c)) //  Posibilidad 5.ª
                System.out.println(n + " = " + (10 * a + d) + " · " + (10 * b + c));
            else if (n == (10 * a + d) * (10 * c + b)) //  Posibilidad 6.ª
                System.out.println(n + " = " + (10 * a + d) + " · " + (10 * c + b));
            else if (n == (10 * b + a) * (10 * c + d)) //  Posibilidad 7.ª
                System.out.println(n + " = " + (10 * b + a) + " · " + (10 * c + d));
            else if (n == (10 * b + a) * (10 * d + c)) //  Posibilidad 8.ª
                System.out.println(n + " = " + (10 * b + a) + " · " + (10 * d + c));
            else if (n == (10 * b + c) * (10 * d + a)) //  Posibilidad 9.ª
                System.out.println(n + " = " + (10 * b + c) + " · " + (10 * d + a));
            else if (n == (10 * b + d) * (10 * c + a)) //  Posibilidad 10.ª
                System.out.println(n + " = " + (10 * b + d) + " · " + (10 * c + a));
            else if (n == (10 * c + a) * (10 * d + b)) //  Posibilidad 11.ª
                System.out.println(n + " = " + (10 * c + a) + " · " + (10 * d + b));
            else if (n == (10 * c + b) * (10 * d + a)) //  Posibilidad 12.ª
                System.out.println(n + " = " + (10 * c + b) + " · " + (10 * d + a));
        }
    }
}

El proceso demora menos de 10 segundos y arroja los resultados siguientes:

\colorbox{lavender}{\(
\def\arraystretch{1.5}
\begin{array}{rcl}
1\,260 &=& 21 \cdot 60\\
1\,395 &=& 15 \cdot 93\\
1\,435 &=& 41 \cdot 35\\
1\,530 &=& 51 \cdot 30\\
1\,827 &=& 87 \cdot 21\\
2\,187 &=& 27 \cdot 81\\
6\,880 &=& 86 \cdot 80\\
\end{array}
\)}

Un algoritmo perfeccionado

Pese a su correcto desempeño, la estructura del programa anterior no es para nada pragmática si pretendemos buscar números vampiro que contengan más de 4 cifras.

Para prueba, bástenos saber que un diseño basado en condicionales \color{SteelBlue}\texttt{else} y \color{SteelBlue}\texttt{else if} requeriría de un total de

\begin{equation}
          \frac {n!}{2}
\end{equation}

de ellos.

Por ejemplo, para n=6, la suma de condicionales requeridos asciende a

\frac{6\,!}{2}=\frac{6\cdot5\cdot4\cdot3\cdot2\cdot1}{2}=360

¡Pasaríamos algunas horas escribiéndolos! A más de los muy probables errores de escritura.

Lo mejor es usar una serie de ciclos anidados. Tres de ellos, a los que llamaremos principales y que dependerán de las variables i,\,j\, y k\,, comparán el número i\,\,-de n cifras- con todos los productos posibles j\cdot k cuyos factores contengan n/2 cifras.

Si existe un número i\, tal que i=k\cdot j\,, el programa usará otros tres ciclos, a los que denominaremos secundarios, dependientes de las variables a,\,b,\, y c que contarán, respectivamente, cuántas cifras de i,\,j\, y k\, son 0, cuántas son 1, cuántas son 2, cuántas son 3, cuántas, 4, cuántas, 5, cuántas, 6, cuántas, 7, cuántas, 8 y cuántas, 9.

Hecho esto, verificaremos que el número i contenga exactamente los mismos dígitos que los factores j y k. De ser así, y habiendo descartado que las cifras de las unidades de j y k sean simultáneamente cero, el número aparecerá en pantalla.

\colorbox{PaleGoldenrod}{\(\bigstar \small\texttt{ Actualizado al 31 de diciembre de 2022 } \bigstar\vphantom{\Big|}\)}
import javax.swing.*;

public class NumerosVampiro2
{
    public static void main(String[] args)
    {
        boolean datos_correctos = true;

        do
        {
            JOptionPane.showMessageDialog(null,"Los números vampiro están compuestos por " + 
            "un \nnúmero par de dígitos mayor o igual que 4.");
            int n = Integer.parseInt(JOptionPane.showInputDialog("¿Cuántos dígitos tienen" + 
            "los números vampiro que deseas conocer?\n" + 
            "Recuerda introducir un entero positivo mayor o igual que 4:"));

            int M = (int) Math.pow(10,n - 1);      // 10^(n-1)
            int N = (int) Math.pow(10,n);          // 10^n
            int P = (int) Math.pow(10,n / 2 - 1);  // 10^(n/2-1)
            int Q = (int) Math.pow(10,n / 2);      // 10^(n/2)

            if (n % 2 == 0 && n >= 4)
            {
                for (int i = M; i < N; i++)
                {
                    for (int j = P; j < Q; j++)
                    {
                        for (int k = P; k < Q; k++)
                        {
                            if (i != j * k)
                                continue;
                            else
                            {
                                // Variables auxiliares para el conteo de cifras.
                                int aux1 = i, aux2 = i;
                                int aux3 = j, aux4 = j;
                                int aux5 = k, aux6 = k;
                                // Contadores de dígitos para i, j y k.
                                int c0i = 0, c0j = 0, c0k = 0;
                                int c1i = 0, c1j = 0, c1k = 0;
                                int c2i = 0, c2j = 0, c2k = 0;
                                int c3i = 0, c3j = 0, c3k = 0;
                                int c4i = 0, c4j = 0, c4k = 0;
                                int c5i = 0, c5j = 0, c5k = 0;
                                int c6i = 0, c6j = 0, c6k = 0;
                                int c7i = 0, c7j = 0, c7k = 0;
                                int c8i = 0, c8j = 0, c8k = 0;
                                int c9i = 0, c9j = 0, c9k = 0;

                                int a = n - 1;
                                while (a >= 0)
                                {
                                    int potencia1 = (int) Math.pow(10,a);
                                    aux1 = (aux1 - aux1 % potencia1) / potencia1;

                                    switch (aux1)
                                    {
                                        case 0:
                                            c0i++;
                                            break;
                                        case 1:
                                            c1i++;
                                            break;
                                        case 2:
                                            c2i++;
                                            break;
                                        case 3:
                                            c3i++;
                                            break;
                                        case 4:
                                            c4i++;
                                            break;
                                        case 5:
                                            c5i++;
                                            break;
                                        case 6:
                                            c6i++;
                                            break;
                                        case 7:
                                            c7i++;
                                            break;
                                        case 8:
                                            c8i++;
                                            break;
                                        case 9:
                                            c9i++;
                                            break;
                                    }
                                    aux2 = aux2 - potencia1 * aux1;
                                    aux1 = aux2;
                                    a--;
                                }
                                int b = n / 2 -1;
                                while ( b >= 0)
                                {
                                    int potencia2 = (int) Math.pow(10,b);
                                    aux3 = (aux3 - aux3 % potencia2) / potencia2;

                                    switch (aux3)
                                    {
                                        case 0:
                                            c0j++;
                                            break;
                                        case 1:
                                            c1j++;
                                            break;
                                        case 2:
                                            c2j++;
                                            break;
                                        case 3:
                                            c3j++;
                                            break;
                                        case 4:
                                            c4j++;
                                            break;
                                        case 5:
                                            c5j++;
                                            break;
                                        case 6:
                                            c6j++;
                                            break;
                                        case 7:
                                            c7j++;
                                            break;
                                        case 8:
                                            c8j++;
                                            break;
                                        case 9:
                                            c9j++;
                                            break;
                                    }
                                    aux4 = aux4 - potencia2 * aux3;
                                    aux3 = aux4;
                                    b--;
                                }
                                int c = n / 2 - 1;
                                while (c >= 0)
                                {
                                    int potencia3 = (int) Math.pow(10,c);
                                    aux5 = (aux5 - aux5 % potencia3) / potencia3;

                                    switch (aux5)
                                    {
                                        case 0:
                                            c0k++;
                                            break;
                                        case 1:
                                            c1k++;
                                            break;
                                        case 2:
                                            c2k++;
                                            break;
                                        case 3:
                                            c3k++;
                                            break;
                                        case 4:
                                            c4k++;
                                            break;
                                        case 5:
                                            c5k++;
                                            break;
                                        case 6:
                                            c6k++;
                                            break;
                                        case 7:
                                            c7k++;
                                            break;
                                        case 8:
                                            c8k++;
                                            break;
                                        case 9:
                                            c9k++;
                                            break;
                                    }
                                    aux6 = aux6 - potencia3 * aux5;
                                    aux5 = aux6;
                                    c--;
                                }
                                if ((c0i == c0j + c0k) && (c1i == c1j + c1k) && 
                                    (c2i == c2j + c2k) && (c3i == c3j + c3k) && 
                                    (c4i == c4j + c4k) && (c5i == c5j + c5k) && 
                                    (c6i == c6j + c6k) && (c7i == c7j + c7k) && 
                                    (c8i == c8j + c8k) && (c9i == c9j + c9k) && 
                                    (j % 10 + k % 10 != 0))
                                    System.out.println(i + " = " + j + " · " + k);
                            }
                        }
                    }
                }
                datos_correctos = true;
            }
            else
            {
                JOptionPane.showMessageDialog(null,"Número inválido. Prueba de nuevo");
                datos_correctos = false;
            }
        } while(datos_correctos == false);
    }
}

IMPORTANTE: Hacemos notar que el proceso de búsqueda de números vampiro con este algoritmo, tratándose de n\geq 8 demora varias horas de cómputo. Si n\geq10 , todas la variables de tipo \texttt{int} (salvo los contadores de dígitos) deben ser reemplazadas por variables de tipo \texttt{long}.

Ofrecemos al lector curioso, una lista con los números vampiro de 6 cifras calculados bajo este procedimiento:

\footnotesize
\def \arraystretch{1.5}
\begin{array}{lll}
102\,510=201\cdot510=510\cdot201&&\\
104\,260=260\cdot401=401\cdot260&&\\
105\,210=210\cdot501=501\cdot210&&\\
105\,264=204\cdot516=516\cdot204&&\\
105\,750=150\cdot705=705\cdot150&&\\
108\,135=135\cdot801=801\cdot135&&\\
110\,758=158\cdot701=701\cdot158&&\\
115\,672=152\cdot761=761\cdot152&&\\
116\,725=161\cdot725=725\cdot161&&\\
117\,067=167\cdot701=701\cdot167&&\\
118\,440=141\cdot840=840\cdot141&&\\
120\,600=201\cdot600=600\cdot201&&\\
123\,354=231\cdot534=534\cdot231&&\\
124\,483=281\cdot443=443\cdot281&&\\
125\,248=152\cdot824=824\cdot152&&\\
125\,433=231\cdot543=543\cdot231&&\\
\color{IndianRed}125\,460=204\cdot615=615\cdot204\\
\color{IndianRed}\phantom{125\,460}=510\cdot246=246\cdot510&&\\
125\,500=251\cdot500=500\cdot251&&\\
126\,027=201\cdot627=627\cdot201&&\\
126\,846=261\cdot486=486\cdot261&&\\
129\,640=140\cdot926=926\cdot140&&\\
129\,775=179\cdot725=725\cdot179&&\\
131\,242=311\cdot422=422\cdot311&&\\
132\,430=323\cdot410=410\cdot323&&\\
133\,245=315\cdot423=423\cdot315&&\\
134\,725=317\cdot425=425\cdot317&&\\
135\,828=231\cdot588=588\cdot231&&\\
135\,837=351\cdot387=387\cdot351&&\\
136\,525=215\cdot635=635\cdot215&&\\
136\,948=146\cdot938=938\cdot146&&\\
140\,350=350\cdot401=401\cdot350&&\\
145\,314=351\cdot414=414\cdot351&&\\
146\,137=317\cdot461=461\cdot317&&\\
146\,952=156\cdot942=942\cdot156&&\\
150\,300=300\cdot501=501\cdot300&&\\
152\,608=251\cdot608=608\cdot251&&\\
152\,685=261\cdot585=585\cdot261&&\\
153\,436=356\cdot431=431\cdot356&&\\
156\,240=240\cdot651=651\cdot240&&\\
156\,289=269\cdot581=581\cdot269&&\\
156\,915=165\cdot951=951\cdot165&&\\
162\,976=176\cdot926=926\cdot176&&\\
163\,944=396\cdot414=414\cdot396&&\\
172\,822=221\cdot782=782\cdot221&&\\
173\,250=231\cdot750=750\cdot231&&\\
174\,370=371\cdot470=470\cdot371&&\\
175\,329=231\cdot759=759\cdot231&&\\
180\,225=225\cdot801=801\cdot225&&\\
180\,297=201\cdot897=897\cdot201&&\\
182\,250=225\cdot810=810\cdot225&&\\
182\,650=281\cdot650=650\cdot281&&\\
186\,624=216\cdot864=864\cdot216&&\\
190\,260=210\cdot906=906\cdot210&&\\
192\,150=210\cdot915=915\cdot210&&\\
193\,257=327\cdot591=591\cdot327&&\\
193\,945=395\cdot491=491\cdot395&&\\
197\,725=275\cdot719=719\cdot275&&\\
201\,852=252\cdot801=801\cdot252&&\\
205\,785=255\cdot807=807\cdot255&&\\
211\,896=216\cdot981=981\cdot216&&\\
213\,466=341\cdot626=626\cdot341&&\\
215\,860=251\cdot860=860\cdot251&&\\
216\,733=323\cdot671=671\cdot323&&\\
217\,638=321\cdot678=678\cdot321&&\\
218\,488=248\cdot881=881\cdot248&&\\
226\,498=269\cdot842=842\cdot269&&\\
226\,872=276\cdot822=822\cdot276&&\\
229\,648=248\cdot926=926\cdot248&&\\
233\,896=338\cdot692=692\cdot338&&\\
241\,564=461\cdot524=524\cdot461&&\\
245\,182=422\cdot581=581\cdot422&&\\
251\,896=296\cdot851=851\cdot296&&\\
253\,750=350\cdot725=725\cdot350&&\\
254\,740=470\cdot542=542\cdot470&&\\
\end{array}
\begin{array}{lll}
260\,338=323\cdot806=806\cdot323&&\\
262\,984=284\cdot926=926\cdot284&&\\
263\,074=437\cdot602=602\cdot437&&\\
284\,598=489\cdot582=582\cdot489&&\\
284\,760=420\cdot678=678\cdot420&&\\
286\,416=468\cdot612=612\cdot468&&\\
296\,320=320\cdot926=926\cdot320&&\\
304\,717=431\cdot707=707\cdot431&&\\
312\,475=431\cdot725=725\cdot431&&\\
312\,975=321\cdot975=975\cdot321&&\\
315\,594=534\cdot591=591\cdot534&&\\
315\,900=351\cdot900=900\cdot351&&\\
319\,059=351\cdot909=909\cdot351&&\\
319\,536=336\cdot951=951\cdot336&&\\
326\,452=524\cdot623=623\cdot524&&\\
329\,346=342\cdot963=963\cdot342&&\\
329\,656=356\cdot926=926\cdot356&&\\
336\,550=530\cdot635=635\cdot530&&\\
336\,960=360\cdot936=936\cdot360&&\\
338\,296=392\cdot863=863\cdot392&&\\
341\,653=533\cdot641=641\cdot533&&\\
346\,968=366\cdot948=948\cdot366&&\\
361\,989=369\cdot981=981\cdot369&&\\
362\,992=392\cdot926=926\cdot392&&\\
365\,638=533\cdot686=686\cdot533&&\\
368\,550=585\cdot630=630\cdot585&&\\
369\,189=381\cdot969=969\cdot381&&\\
371\,893=383\cdot971=971\cdot383&&\\
378\,400=473\cdot800=800\cdot473&&\\
378\,418=431\cdot878=878\cdot431&&\\
378\,450=435\cdot870=870\cdot435&&\\
384\,912=432\cdot891=891\cdot432&&\\
386\,415=465\cdot831=831\cdot465&&\\
392\,566=593\cdot662=662\cdot593&&\\
404\,968=446\cdot908=908\cdot446&&\\
414\,895=491\cdot845=845\cdot491&&\\
416\,650=641\cdot650=650\cdot641&&\\
416\,988=468\cdot891=891\cdot468&&\\
428\,980=482\cdot890=890\cdot482&&\\
429\,664=464\cdot926=926\cdot464&&\\
447\,916=476\cdot941=941\cdot476&&\\
456\,840=540\cdot846=846\cdot540&&\\
457\,600=650\cdot704=704\cdot650&&\\
458\,640=546\cdot840=840\cdot546&&\\
475\,380=570\cdot834=834\cdot570&&\\
486\,720=624\cdot780=780\cdot624&&\\
489\,159=549\cdot891=891\cdot549&&\\
489\,955=545\cdot899=899\cdot545&&\\
498\,550=590\cdot845=845\cdot590&&\\
516\,879=681\cdot759=759\cdot681&&\\
529\,672=572\cdot926=926\cdot572&&\\
536\,539=563\cdot953=953\cdot563&&\\
538\,650=630\cdot855=855\cdot630&&\\
559\,188=588\cdot951=951\cdot588&&\\
567\,648=657\cdot864=864\cdot657&&\\
568\,750=650\cdot875=875\cdot650&&\\
629\,680=680\cdot926=926\cdot680&&\\
638\,950=650\cdot983=983\cdot650&&\\
673\,920=720\cdot936=936\cdot720&&\\
679\,500=750\cdot906=906\cdot750&&\\
729\,688=788\cdot926=926\cdot788&&\\
736\,695=765\cdot963=963\cdot765&&\\
738\,468=843\cdot876=876\cdot843&&\\
769\,792=776\cdot992=992\cdot776&&\\
789\,250=875\cdot902=902\cdot875&&\\
789\,525=825\cdot957=957\cdot825&&\\
792\,585=855\cdot927=927\cdot855&&\\
794\,088=807\cdot984=984\cdot807&&\\
809\,919=891\cdot909=909\cdot891&&\\
809\,964=894\cdot906=906\cdot894&&\\
815\,958=858\cdot951=951\cdot858&&\\
829\,696=896\cdot926=926\cdot896&&\\
841\,995=891\cdot945=945\cdot891&&\\
939\,658=953\cdot986=986\cdot953&&\\
\\
\end{array}

De entre todos, hemos resaltado al \color{IndianRed}125\,460, pues es el primero de los números vampiro que puede expresarse con pares de colmillos diferentes.

1 Algunos autores discrepan sobre la inclusión del cero en este conjunto. Para evitar ambigüedades, se designa por \mathbb{N}_0 al que le incluye, mientras que por \mathbb{N}_1 al que no lo hace.

2 Para ejecutar los programas cuyo código aquí se muestra, hará falta tener instalado Java en el dispositivo desde donde se desee hacerlo, además de un entorno de desarrollo integrado, como Visual Studio Code o IntelliJ IDEA. Después de creada una clase con los nombres aquí utilizados, bastará copiar y pegar el código para posteriormente ejecutarlo.

Related posts

Mazatlán y Torreón, en penumbra tras eclipse total de Sol

The Mexico News

¿Cuál es el mayor?

Carlos Harim Carrillo Rodríguez

Tras enfermedad de su hija, Samuel García finalmente toma medidas contra la contaminación

The Mexico News