In mathematics, an automorphic number (sometimes referred to as a circular 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 one of these 
 
 
  
  
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  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.

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  ( and ), 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:
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 , 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):
    """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 = 10
digits = 10

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

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

See also
 Arithmetic dynamics
 Kaprekar number
 p-adic number
 p-adic analysis
 Zero-divisor

References

External links 

Arithmetic dynamics
Base-dependent integer sequences
Mathematical analysis
Modular arithmetic
Number theory
P-adic numbers
Ring theory