Dudeney number

From HandWiki

In number theory, a Dudeney number in a given number base [math]\displaystyle{ b }[/math] is a natural number equal to the perfect cube of another natural number such that the digit sum of the first natural number is equal to the second. The name derives from Henry Dudeney, who noted the existence of these numbers in one of his puzzles, Root Extraction, where a professor in retirement at Colney Hatch postulates this as a general method for root extraction.

Mathematical definition

Let [math]\displaystyle{ n }[/math] be a natural number. We define the Dudeney function for base [math]\displaystyle{ b \gt 1 }[/math] and power [math]\displaystyle{ p \gt 0 }[/math] [math]\displaystyle{ F_{p, b} : \mathbb{N} \rightarrow \mathbb{N} }[/math] to be the following:

[math]\displaystyle{ F_{p, b}(n) = \sum_{i=0}^{k - 1} \frac{n^p \bmod{b^{i+1}} - n^p \bmod b^i}{b^i} }[/math]

where [math]\displaystyle{ k = p\left(\lfloor \log_{b}{n} \rfloor + 1\right) }[/math] is the [math]\displaystyle{ p }[/math] times the number of digits in the number in base [math]\displaystyle{ b }[/math].

A natural number [math]\displaystyle{ n }[/math] is a Dudeney root if it is a fixed point for [math]\displaystyle{ F_{p, b} }[/math], which occurs if [math]\displaystyle{ F_{p, b}(n) = n }[/math]. The natural number [math]\displaystyle{ m = n^p }[/math] is a generalised Dudeney number,[1] and for [math]\displaystyle{ p = 3 }[/math], the numbers are known as Dudeney numbers. [math]\displaystyle{ 0 }[/math] and [math]\displaystyle{ 1 }[/math] are trivial Dudeney numbers for all [math]\displaystyle{ b }[/math] and [math]\displaystyle{ p }[/math], all other trivial Dudeney numbers are nontrivial trivial Dudeney numbers.

For [math]\displaystyle{ p = 3 }[/math] and [math]\displaystyle{ b = 10 }[/math], there are exactly six such integers (sequence A061209 in the OEIS): [math]\displaystyle{ 1, 512, 4913, 5832, 17576, 19683 }[/math]

A natural number [math]\displaystyle{ n }[/math] is a sociable Dudeney root if it is a periodic point for [math]\displaystyle{ F_{p, b} }[/math], where [math]\displaystyle{ F_{p,b}^k(n) = n }[/math] for a positive integer [math]\displaystyle{ k }[/math], and forms a cycle of period [math]\displaystyle{ k }[/math]. A Dudeney root is a sociable Dudeney root with [math]\displaystyle{ k = 1 }[/math], and a amicable Dudeney root is a sociable Dudeney root with [math]\displaystyle{ k = 2 }[/math]. Sociable Dudeney numbers and amicable Dudeney numbers are the powers of their respective roots.

The number of iterations [math]\displaystyle{ i }[/math] needed for [math]\displaystyle{ F_{p,b}^{i}(n) }[/math] to reach a fixed point is the Dudeney function's persistence of [math]\displaystyle{ n }[/math], and undefined if it never reaches a fixed point.

It can be shown that given a number base [math]\displaystyle{ b }[/math] and power [math]\displaystyle{ p }[/math], the maximum Dudeney root has to satisfy this bound:

[math]\displaystyle{ n \leq (b - 1)(1 + p + \log_{b}{n^p}) = (b - 1)(1 + p + p \log_{b}{n})) }[/math]

implying a finite number of Dudeney roots and Dudeney numbers for each order [math]\displaystyle{ p }[/math] and base [math]\displaystyle{ b }[/math].[2]

[math]\displaystyle{ F_{1, b} }[/math] is the digit sum. The only Dudeney numbers are the single-digit numbers in base [math]\displaystyle{ b }[/math], and there are no periodic points with prime period greater than 1.

Dudeney numbers, roots, and cycles of Fp,b for specific p and b

All numbers are represented in base [math]\displaystyle{ b }[/math].

[math]\displaystyle{ p }[/math] [math]\displaystyle{ b }[/math] Nontrivial Dudeney roots [math]\displaystyle{ n }[/math] Nontrivial Dudeney numbers [math]\displaystyle{ m = n^p }[/math] Cycles of [math]\displaystyle{ F_{p, b}(n) }[/math] Amicable/Sociable Dudeney numbers
2 2 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math]
2 3 2 11 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math]
2 4 3 21 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math]
2 5 4 31 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math]
2 6 5 41 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math]
2 7 3, 4, 6 12, 22, 51 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math]
2 8 7 61 2 → 4 → 2 4 → 20 → 4
2 9 8 71 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math]
2 10 9 81 13 → 16 → 13 169 → 256 → 169
2 11 5, 6, A 23, 33, 91 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math]
2 12 B A1 9 → 13 → 14 → 12 69 → 169 → 194 → 144
2 13 4, 9, C, 13 13, 63, B1, 1E6 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math]
2 14 D C1 9 → 12 → 9 5B → 144 → 5B
2 15 7, 8, E, 16 34, 44, D1, 169

2 → 4 → 2

9 → B → 9

4 → 11 → 4

56 → 81 → 56

2 16 6, A, F 24, 64, E1 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math]
3 2 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math]
3 3 11, 22 2101, 200222 12 → 21 → 12 11122 → 110201 → 11122
3 4 2, 12, 13, 21, 22 20, 3120, 11113, 23121, 33220 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math]
3 5 3, 13, 14, 22, 23 102, 4022, 10404, 23403, 32242 12 → 21 → 12 2333 → 20311 → 2333
3 6 13, 15, 23, 24 3213, 10055, 23343, 30544 11 → 12 → 11 1331 → 2212 → 1331
3 7 2, 4, 11, 12, 14, 15, 21, 22 11, 121, 1331, 2061, 3611, 5016, 12561, 14641 25 → 34 → 25 25666 → 63361 → 25666
3 8 6, 15, 16 330, 4225, 5270 17 → 26 → 17 6457 → 24630 → 6457
3 9 3, 7, 16, 17, 25 30, 421, 4560, 5551, 17618

5 → 14 → 5

12 → 21 → 12

18 → 27 → 18

148 → 3011 → 148

1738 → 6859 → 1738

6658 → 15625 → 6658

3 10 8, 17, 18, 26, 27 512, 4913, 5832, 17576, 19683 19 → 28 → 19 6859 → 21952 → 6859
3 11 5, 9, 13, 15, 18, 22 104, 603, 2075, 3094, 5176, A428

8 → 11 → 8

A → 19 → A

14 → 23 → 14

16 → 21 → 16

426 → 1331 → 426

82A → 6013 → 82A

2599 → 10815 → 2599

3767 → 12167 → 3767

3 12 19, 1A, 1B, 28, 29, 2A 5439, 61B4, 705B, 16B68, 18969, 1A8B4

8 → 15 → 16 → 11 → 8

13 → 18 → 21 → 14 → 13

368 → 2A15 → 3460 → 1331 → 368

1B53 → 4768 → 9061 → 2454 → 1B53

4 2 11, 101 1010001, 1001110001 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math]
4 3 11 100111 22 → 101 → 22 12121201 → 111201101 → 12121201
4 4 3, 13, 21, 31 1101, 211201, 1212201, 12332101 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math]
4 5 4, 14, 22, 23, 31 2011, 202221, 1130421, 1403221, 4044121 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math]
4 6 24, 32, 42 1223224, 3232424, 13443344 14 → 23 → 14 114144 → 1030213 → 114144
5 2 110, 111, 1001 1111001100000, 100000110100111, 1110011010101001 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math]
5 3 101 12002011201 22 → 121 → 112 → 110 → 22 1122221122 → 1222021101011 → 1000022202102 → 110122100000 → 1122221122
5 4 2, 22 200, 120122200 21 → 33 → 102 → 30 → 21 32122221 → 2321121033 → 13031110200 → 330300000 → 32122221
6 2 110 1011011001000000 111 → 1001 → 1010 → 111 11100101110010001 → 10000001101111110001 → 11110100001001000000 → 11100101110010001
6 3 [math]\displaystyle{ \varnothing }[/math] [math]\displaystyle{ \varnothing }[/math] 101 → 112 → 121 → 101 1212210202001 → 112011112120201 → 1011120101000101 → 1212210202001

Extension to negative integers

Dudeney numbers can be extended to the negative integers by use of a signed-digit representation to represent each integer.

Programming example

The example below implements the Dudeney function described in the definition above to search for Dudeney roots, numbers and cycles in Python.

def dudeneyf(x: int, p: int, b: int) -> int:
    """Dudeney function."""
    y = pow(x, p)
    total = 0
    while y > 0:
        total = total + y % b
        y = y // b
    return total

def dudeneyf_cycle(x: int, p: int, b: int) -> List:
    seen = []
    while x not in seen:
        seen.append(x)
        x = dudeneyf(x, p, b)
    cycle = []
    while x not in cycle:
        cycle.append(x)
        x = dudeneyf(x, p, b)
    return cycle

See also

References

  • H. E. Dudeney, 536 Puzzles & Curious Problems, Souvenir Press, London, 1968, p 36, #120.

External links