Automorphic number


In mathematics, an automorphic number is a natural number in a given number base whose square "ends" in the same digits as the number itself.

Definition and properties

Given a number base, a natural number with digits is an automorphic number if is a fixed point of the polynomial function over, the ring of integers modulo. As the inverse limit of is, the ring of -adic integers, automorphic numbers are used to find the numerical representations of the fixed points of over.
For example, with, there are four 10-adic fixed points of, the last 10 digits of which are
Thus, the automorphic numbers in base 10 are 0, 1, 5, 6, 25, 76, 376, 625, 9376,....
A fixed point of is a zero of the function. In the ring of integers modulo, there are zeroes to, where the prime omega function is the number of distinct prime factors in. An element in is a zero of if and only if or for all. Since there are two possible values in, and there are such, there are zeroes of, and thus there are fixed points of. According to Hensel's lemma, if there are zeroes or fixed points of a polynomial function modulo, then there are corresponding zeroes or fixed points of the same function modulo any power of, and this remains true in the inverse limit. Thus, in any given base there are -adic fixed points of.
As 0 is always a zero divisor, 0 and 1 are always fixed points of, and 0 and 1 are automorphic numbers in every base. These solutions are called trivial automorphic numbers. If is a prime power, then the ring of -adic numbers has no zero divisors other than 0, so the only fixed points of are 0 and 1. As a result, nontrivial automorphic numbers, those other than 0 and 1, only exist when the base has at least two distinct prime factors.

Automorphic numbers in base b

All -adic numbers are represented in base, using A−Z to represent digit values 10 to 35.
Prime factors ofFixed points in of-adic fixed points ofAutomorphic numbers in base
62, 30, 1, 3, 4
3, 13, 213, 50213, 350213, 1350213, 21350213, 221350213, 3334205344...
4, 44, 344, 5344, 205344, 4205344, 34205344, 334205344, 2221350213...
102, 50, 1, 5, 60, 1, 5, 6, 25, 76, 376, 625, 9376, 90625, 109376, 890625, 2890625, 7109376, 12890625, 87109376, 212890625, 787109376, 1787109376, 8212890625...
122, 30, 1, 4, 90, 1, 4, 9, 54, 69, 369, 854, 3854, 8369, B3854, 1B3854, A08369, 5A08369, 61B3854, B61B3854, 1B61B3854, A05A08369, 21B61B3854, 9A05A08369...
142, 70, 1, 7, 80, 1, 7, 8, 37, A8, 1A8, C37, D1A8, 3D1A8, A0C37, 33D1A8, AA0C37, 633D1A8, 7AA0C37, 37AA0C37, A633D1A8, 337AA0C37, AA633D1A8, 7337AA0C37, 6AA633D1A8...
153, 50, 1, 6, 100, 1, 6, A, 6A, 86, 46A, A86, 146A, DA86, 3146A, BDA86, 4BDA86, A3146A, 1A3146A, D4BDA86, 4D4BDA86, A1A3146A, 24D4BDA86, CA1A3146A, 624D4BDA86, 8CA1A3146A...
182, 39, 10
...1249
...GFDA
202, 55, 16
...B6B5
...8D8G
213, 77, 15
...H7G7
...3D4F
222, 1111, 12
...185B
...KDGC
242, 39, 16
...D0L9
...AN2G
262, 1313, 14
...1G6D
...O9JE
282, 78, 21
302, 3, 56, 10, 15, 16, 21, 25
...B2J6
...H13A
...1Q7F
...S3MG
...CSQL
...IRAP
333, 1112, 22
342, 1717, 18
355, 715, 21
36 2, 39, 28
...DN29
...MCXS

Extensions

Automorphic numbers can be extended to any such polynomial function of degree with b-adic coefficients. These generalised automorphic numbers form a tree.

a-automorphic numbers

An -automorphic number occurs when the polynomial function is
For example, with and, as there are two fixed points for in , according to Hensel's lemma there are two 10-adic fixed points for,
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 . 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, the trimorphic numbers are:
For base, the trimorphic numbers are:

Programming example


def hensels_lemma:
"""Hensel's lemma."""
if power 0:
return
if power > 0:
roots = hensels_lemma
new_roots =
for root in roots:
for i in range:
new_i = i * base ** + root
new_root = polynomial_function % pow
if new_root 0:
new_roots.append
return new_roots
base = 10
digits = 10
def automorphic_polynomial:
return x ** 2 - x
for i in range:
print