cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A371670 Largest prime number p such that x^n + y^n + z^n mod p does not take all values on Z/pZ.

Original entry on oeis.org

5, 11, 31, 43, 41, 37, 61, 89, 229, 79, 127, 61, 257, 137, 397, 419, 521, 337, 463, 277, 577, 251, 599, 541, 617, 349, 661, 373, 769, 727, 953, 631, 1117, 593, 761, 1483, 761, 739, 1597, 1033, 1409, 1171, 1289, 1693, 2113, 883, 1301, 1327, 2861, 1697, 2269, 1871, 2633, 1483, 2089, 2243, 2221, 1709, 1861, 2143
Offset: 4

Views

Author

Robin Visser, Apr 02 2024

Keywords

Comments

a(n) is well-defined for all n >= 4, following a similar discussion given in A355920. Indeed for any integer k, by fibering the surface C : x^n + y^n + z^n == k (mod p) into curves and applying the Hasse-Weil bound, we obtain that the number of points N on C must satisfy |N - p(p+1)| <= 2*g*p*sqrt(p), where g = (n-1)(n-2)/2 is the genus of the Fermat curve x^n + y^n = 1. Thus, N is nonzero if p+1 > (n-1)(n-2)*sqrt(p). In particular, x^n + y^n + z^n mod p takes all values on Z/pZ for all primes p > n^4.
a(n) <= A355920(n). - Jason Yuen, May 30 2024

Examples

			For n = 4, the equation x^4 + y^4 + z^4 == 4 (mod 5) does not have a solution, but x^4 + y^4 + z^4 == k (mod p) does have a solution for any integer k and prime p greater than 5, thus a(4) = 5.
For n = 5, the equation x^5 + y^5 + z^5 == 4 (mod 11) does not have a solution, but x^5 + y^5 + z^5 == k (mod p) does have a solution for any integer k and prime p greater than 11, thus a(5) = 11.
		

Crossrefs

Programs

  • Python
    from itertools import combinations_with_replacement
    from sympy import prevprime
    def A371670(n):
        p = n**4
        while (p:=prevprime(p)):
            pset = set(q:=tuple(pow(x,n,p) for x in range(p)))
            if not all(any((k-a[0]-a[1])%p in pset for a in combinations_with_replacement(q,2)) for k in range(p)):
                return p # Chai Wah Wu, Apr 04 2024
  • SageMath
    def a(n):
        p = Integer(n^4).previous_prime()
        while True:
            nth_powers = set([power_mod(x, n, p) for x in range(p)])
            for k in range(p):
                for xn, yn in ((x,y) for x in nth_powers for y in nth_powers):
                    if (k-xn-yn)%p in nth_powers: break
                else: return p
            p = p.previous_prime()
    

Extensions

a(36)-a(63) from Jason Yuen, May 30 2024