Automorphic number explained

b

whose square "ends" in the same digits as the number itself.

Definition and properties

Given a number base

b

, a natural number

n

with

k

digits is an automorphic number if

n

is a fixed point of the polynomial function

f(x)=x2

over

Z/bkZ

, the ring of integers modulo

bk

. As the inverse limit of

Z/bkZ

is

Zb

, the ring of

b

-adic
integers, automorphic numbers are used to find the numerical representations of the fixed points of

f(x)=x2

over

Zb

.

For example, with

b=10

, there are four 10-adic fixed points of

f(x)=x2

, the last 10 digits of which are:

\ldots0000000000

\ldots0000000001

\ldots8212890625

\ldots1787109376

Thus, the automorphic numbers in base 10 are 0, 1, 5, 6, 25, 76, 376, 625, 9376, 90625, 109376, 890625, 2890625, 7109376, 12890625, 87109376, 212890625, 787109376, 1787109376, 8212890625, 18212890625, 81787109376, 918212890625, 9918212890625, 40081787109376, 59918212890625, ... .

A fixed point of

f(x)

is a zero of the function

g(x)=f(x)-x

. In the ring of integers modulo

b

, there are

2\omega(b)

zeroes to

g(x)=x2-x

, where the prime omega function

\omega(b)

is the number of distinct prime factors in

b

. An element

x

in

Z/bZ

is a zero of

g(x)=x2-x

if and only if

x\equiv0\bmod

vp(b)
p
or

x\equiv1\bmod

vp(b)
p
for all

p|b

. Since there are two possible values in

\lbrace0,1\rbrace

, and there are

\omega(b)

such

p|b

, there are

2\omega(b)

zeroes of

g(x)=x2-x

, and thus there are

2\omega(b)

fixed points of

f(x)=x2

. According to Hensel's lemma, if there are

k

zeroes or fixed points of a polynomial function modulo

b

, then there are

k

corresponding zeroes or fixed points of the same function modulo any power of

b

, and this remains true in the inverse limit. Thus, in any given base

b

there are

2\omega(b)

b

-adic fixed points of

f(x)=x2

.

As 0 is always a zero-divisor, 0 and 1 are always fixed points of

f(x)=x2

, and 0 and 1 are automorphic numbers in every base. These solutions are called trivial automorphic numbers. If

b

is a prime power, then the ring of

b

-adic numbers has no zero-divisors other than 0, so the only fixed points of

f(x)=x2

are 0 and 1. As a result, nontrivial automorphic numbers, those other than 0 and 1, only exist when the base

b

has at least two distinct prime factors.

Automorphic numbers in base b

All

b

-adic numbers are represented in base

b

, using A−Z to represent digit values 10 to 35.

b

Prime factors of

b

Fixed points in

Z/bZ

of

f(x)=x2

b

-adic fixed points of

f(x)=x2

Automorphic numbers in base

b

6 2, 3 0, 1, 3, 4

\ldots0000000000

\ldots0000000001

\ldots2221350213

\ldots3334205344

0, 1, 3, 4, 13, 44, 213, 344, 5344, 50213, 205344, 350213, 1350213, 4205344, 21350213, 34205344, 221350213, 334205344, 2221350213, 3334205344, ...
10 2, 5 0, 1, 5, 6

\ldots0000000000

\ldots0000000001

\ldots8212890625

\ldots1787109376

0, 1, 5, 6, 25, 76, 376, 625, 9376, 90625, 109376, 890625, 2890625, 7109376, 12890625, 87109376, 212890625, 787109376, 1787109376, 8212890625, ...
12 2, 3 0, 1, 4, 9

\ldots0000000000

\ldots0000000001

\ldots21B61B3854

\ldots9A05A08369

0, 1, 4, 9, 54, 69, 369, 854, 3854, 8369, B3854, 1B3854, A08369, 5A08369, 61B3854, B61B3854, 1B61B3854, A05A08369, 21B61B3854, 9A05A08369, ...
14 2, 7 0, 1, 7, 8

\ldots0000000000

\ldots0000000001

\ldots7337AA0C37

\ldots6AA633D1A8

0, 1, 7, 8, 37, A8, 1A8, C37, D1A8, 3D1A8, A0C37, 33D1A8, AA0C37, 633D1A8, 7AA0C37, 37AA0C37, A633D1A8, 337AA0C37, AA633D1A8, 6AA633D1A8, 7337AA0C37, ...
15 3, 5 0, 1, 6, 10

\ldots0000000000

\ldots0000000001

\ldots624D4BDA86

\ldots8CA1A3146A

0, 1, 6, A, 6A, 86, 46A, A86, 146A, DA86, 3146A, BDA86, 4BDA86, A3146A, 1A3146A, D4BDA86, 4D4BDA86, A1A3146A, 24D4BDA86, CA1A3146A, 624D4BDA86, 8CA1A3146A, ...
18 2, 3 0, 1, 9, 10 ...000000

...000001

...4E1249

...D3GFDA

20 2, 5 0, 1, 5, 16 ...000000

...000001

...1AB6B5

...I98D8G

21 3, 7 0, 1, 7, 15 ...000000

...000001

...86H7G7

...CE3D4F

22 2, 11 0, 1, 11, 12 ...000000

...000001

...8D185B

...D8KDGC

24 2, 3 0, 1, 9, 16 ...000000

...000001

...E4D0L9

...9JAN2G

26 2, 13 0, 1, 13, 14 ...0000

...0001

...1G6D

...O9JE

28 2, 7 0, 1, 8, 21 ...0000

...0001

...AAQ8

...HH1L

30 2, 3, 5 0, 1, 6, 10, 15, 16, 21, 25...0000

...0001

...B2J6

...H13A

...1Q7F

...S3MG

...CSQL

...IRAP

33 3, 11 0, 1, 12, 22 ...0000

...0001

...1KPM

...VC7C

34 2, 17 0, 1, 17, 18 ...0000

...0001

...248H

...VTPI

35 5, 7 0, 1, 15, 21 ...0000

...0001

...5MXL

...TC1F

36 2, 3 0, 1, 9, 28 ...0000

...0001

...DN29

...MCXS

Extensions

n

f(x) = \sum_^ a_i x^i with b-adic coefficients

ai

. These generalised automorphic numbers form a tree.

a-automorphic numbers

An

a

-automorphic number occurs when the polynomial function is

f(x)=ax2

For example, with

b=10

and

a=2

, as there are two fixed points for

f(x)=2x2

in

Z/10Z

(

x=0

and

x=8

), according to Hensel's lemma there are two 10-adic fixed points for

f(x)=2x2

,

\ldots0000000000

\ldots0893554688

so the 2-automorphic numbers in base 10 are 0, 8, 88, 688, 4688...

Trimorphic numbers

A trimorphic number or spherical number occurs when the polynomial function is

f(x)=x3

.[1] All automorphic numbers are trimorphic. The terms circular and spherical were formerly used for the slightly different case of a number whose powers all have the same last digit as the number itself.

For base

b=10

, the trimorphic numbers are:

0, 1, 4, 5, 6, 9, 24, 25, 49, 51, 75, 76, 99, 125, 249, 251, 375, 376, 499, 501, 624, 625, 749, 751, 875, 999, 1249, 3751, 4375, 4999, 5001, 5625, 6249, 8751, 9375, 9376, 9999, ...

For base

b=12

, the trimorphic numbers are:

0, 1, 3, 4, 5, 7, 8, 9, B, 15, 47, 53, 54, 5B, 61, 68, 69, 75, A7, B3, BB, 115, 253, 368, 369, 4A7, 5BB, 601, 715, 853, 854, 969, AA7, BBB, 14A7, 2369, 3853, 3854, 4715, 5BBB, 6001, 74A7, 8368, 8369, 9853, A715, BBBB, ...

Programming example

def hensels_lemma(polynomial_function, base: int, power: int) -> list[int]: """Hensel's lemma.""" if power

0: return [0] if power > 0: roots = hensels_lemma(polynomial_function, base, power - 1) new_roots = [] for root in roots: for i in range(0, base): new_i = i * base ** (power - 1) + root new_root = polynomial_function(new_i) % pow(base, power) if new_root

0: new_roots.append(new_i) return new_roots

base = 10digits = 10

def automorphic_polynomial(x: int) -> int: return x ** 2 - x

for i in range(1, digits + 1): print(hensels_lemma(automorphic_polynomial, base, i))

See also

References

  1. http://www.numericana.com/answer/p-adic.htm#decimal See Gérard Michon's article at