Sum-product number

A sum-product number in a given number base is a natural number that is equal to the product of the sum of its digits and the product of its digits.

There are a finite number of sum-product numbers in any given base . In base 10, there are exactly four sum-product numbers (sequence A038369 in the OEIS): 0, 1, 135, and 144.[1]

Definition

Let be a natural number. We define the sum-product function for base , , to be the following:

where is the number of digits in the number in base , and

is the value of each digit of the number. A natural number is a sum-product number if it is a fixed point for , which occurs if . The natural numbers 0 and 1 are trivial sum-product numbers for all , and all other sum-product numbers are nontrivial sum-product numbers.

For example, the number 144 in base 10 is a sum-product number, because , , and .

A natural number is a sociable sum-product number if it is a periodic point for , where for a positive integer , and forms a cycle of period . A sum-product number is a sociable sum-product number with , and an amicable sum-product number is a sociable sum-product number with

All natural numbers are preperiodic points for , regardless of the base. This is because for any given digit count , the minimum possible value of is and the maximum possible value of is The maximum possible digit sum is therefore and the maximum possible digit product is Thus, the sum-product function value is This suggests that or dividing both sides by , Since this means that there will be a maximum value where because of the exponential nature of and the linearity of Beyond this value , always. Thus, there are a finite number of sum-product numbers, and any natural number is guaranteed to reach a periodic point or a fixed point less than making it a preperiodic point.

The number of iterations needed for to reach a fixed point is the sum-product function's persistence of , and undefined if it never reaches a fixed point.

Any integer shown to be a sum-product number in a given base must, by definition, also be a Harshad number in that base.

Sum-product numbers and cycles of Fb for specific b

All numbers are represented in base .

Base Nontrivial sum-product numbers Cycles
2 (none) (none)
3 (none) 2 → 11 → 2, 22 → 121 → 22
4 12 (none)
5 341 22 → 31 → 22
6 (none) (none)
7 22, 242, 1254, 2343, 116655, 346236, 424644
8 (none)
9 13, 281876, 724856, 7487248 53 → 143 → 116 → 53
10 135, 144
11 253, 419, 2189, 7634, 82974
12 128, 173, 353
13 435, A644, 268956
14 328, 544, 818C
15 2585
16 14
17 33, 3B2, 3993, 3E1E, C34D, C8A2
18 175, 2D2, 4B2
19 873, B1E, 24A8, EAH1, 1A78A, 6EC4B7
20 1D3, 14C9C, 22DCCG
21 1CC69
22 24, 366C, 6L1E, 4796G
23 7D2, J92, 25EH6
24 33DC
25 15, BD75, 1BBN8A
26 81M, JN44, 2C88G, EH888
27
28 15B
29
30 976, 85MDA
31 44, 13H, 1E5
32
33 1KS69, 54HSA
34 25Q8, 16L6W, B6CBQ
35 4U5W5
36 16, 22O

Extension to negative integers

Sum-product 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 sum-product function described in the definition above to search for sum-product numbers and cycles in Python.

def sum_product(x: int, b: int) -> int:
    """Sum-product number."""
    sum_x = 0
    product = 1
    while x > 0:
        if x % b > 0:
            sum_x = sum_x + x % b
            product = product * (x % b)
        x = x // b
    return sum_x * product

def sum_product_cycle(x: int, b: int) -> list[int]:
    seen = []
    while x not in seen:
        seen.append(x)
        x = sum_product(x, b)
    cycle = []
    while x not in cycle:
        cycle.append(x)
        x = sum_product(x, b)
    return cycle

See also

References

  1. ^ Sloane, N. J. A. (ed.). "Sequence A038369 (Numbers n such that n = (product of digits of n) * (sum of digits of n).)". The On-Line Encyclopedia of Integer Sequences. OEIS Foundation.