A373387 Constant congruence speed of the tetration base n (in radix-10), or -1 if n is a multiple of 10.
0, 0, 1, 1, 1, 2, 1, 2, 1, 1, -1, 1, 1, 1, 1, 4, 1, 1, 2, 1, -1, 1, 1, 1, 2, 3, 2, 1, 1, 1, -1, 1, 2, 1, 1, 2, 1, 1, 1, 1, -1, 1, 1, 2, 1, 2, 1, 1, 1, 2, -1, 2, 1, 1, 1, 3, 1, 3, 1, 1, -1, 1, 1, 1, 1, 6, 1, 1, 3, 1, -1, 1, 1, 1, 2, 2, 2, 1, 1, 1, -1, 1, 2, 1
Offset: 0
Examples
a(3) = 1 since 3^^b := 3^3^3^... freezes 1 more rightmost digit for each unit increment of b, starting from b = 2.
References
- Marco Ripà, La strana coda della serie n^n^...^n, Trento, UNI Service, Nov 2011. ISBN 978-88-6178-789-6.
Links
- Marco Ripà, On the constant congruence speed of tetration, Notes on Number Theory and Discrete Mathematics, Volume 26, 2020, Number 3, Pages 245—260.
- Marco Ripà, The congruence speed formula, Notes on Number Theory and Discrete Mathematics, 2021, 27(4), 43—61.
- Marco Ripà, Twelve Python Programs to Help Readers Test Peculiar Properties of Integer Tetration, ResearchGate, 2024. See pp. 22-23, 27.
- Marco Ripà and Gabriele Di Pietro, A Compact Notation for Peculiar Properties Characterizing Integer Tetration, Zenodo, 2025.
- Marco Ripà and Luca Onnis, Number of stable digits of any integer tetration, Notes on Number Theory and Discrete Mathematics, 2022, 28(3), 441—457.
- Wikipedia, Graham's Number.
- Wikipedia, Tetration.
Crossrefs
Programs
-
Python
def v2(n): count = 0 while n % 2 == 0 and n > 0: n //= 2 count += 1 return count def v5(n): count = 0 while n % 5 == 0 and n > 0: n //= 5 count += 1 return count def V(a): mod_20 = a % 20 mod_10 = a % 10 if mod_20 == 1: return min(v2(a - 1), v5(a - 1)) elif mod_20 == 11: return min(v2(a + 1), v5(a - 1)) elif mod_10 in {2, 8}: return v5(a ** 2 + 1) elif mod_20 in {3, 7}: return min(v2(a + 1), v5(a ** 2 + 1)) elif mod_20 in {13, 17}: return min(v2(a - 1), v5(a ** 2 + 1)) elif mod_10 == 4: return v5(a + 1) elif mod_20 == 5: return v2(a - 1) elif mod_20 == 15: return v2(a + 1) elif mod_10 == 6: return v5(a - 1) elif mod_20 == 9: return min(v2(a - 1), v5(a + 1)) elif mod_20 == 19: return min(v2(a + 1), v5(a + 1)) def generate_sequence(): sequence = [] for a in range(1026): if a == 0 or a == 1: sequence.append(0) elif a % 10 == 0: sequence.append(-1) else: sequence.append(V(a)) return sequence sequence = generate_sequence() print("a(0), a(1), a(2), ..., a(1025) =", ", ".join(map(str, sequence)))
Formula
a(n) = -1 iff n == 0 (mod 10), a(n) = 0 iff n = 1 or 2. Otherwise, a(n) >= 1 and it is given by Equation (16) from Ripà and Onnis.
Comments