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.

A368055 Smallest 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, 7, 29, 5, 19, 11, 23, 5, 53, 29, 11, 5, 103, 7, 191, 5, 29, 23, 47, 5, 11, 53, 19, 5, 59, 7, 311, 5, 23, 103, 11, 5, 149, 191, 53, 5, 83, 7, 173, 5, 11, 47, 283, 5, 29, 11, 103, 5, 107, 7, 11, 5, 191, 59, 709, 5, 367, 311, 19, 5, 11, 7, 269, 5, 47, 11, 569, 5, 293, 149, 11
Offset: 4

Views

Author

Robin Visser, Dec 09 2023

Keywords

Comments

If there exists some prime p > 3 such that p-1 divides n, then x^n (mod p) is either 0 or 1 for all integers x, therefore giving an upper bound of a(n) <= p.

Examples

			For n = 4, x^4 + y^4 + z^4 attains all values on Z/2Z and Z/3Z, but x^4 + y^4 + z^4  == 4 (mod 5) has no solution, so a(4) = 5.
For n = 5, x^5 + y^5 + z^5 attains all values on Z/2Z, Z/3Z, Z/5Z, and Z/7Z, but x^5 + y^5 + z^5 == 4 (mod 11) has no solution, so a(5) = 11.
		

Crossrefs

Cf. A367689.

Programs

  • Maple
    f:= proc(n) local p,s,t,T,S,S2,S3;
      p:= 2;
      do
        p:= nextprime(p);
        T:= {$0..p-1}:
        S:= {seq(s^n mod p,s=0..p-1)};
        if S = T then next fi;
        S2:= {seq(seq(s+t mod p, s=S),t=S)};
        if S2 = T then next fi;
        S3:= {seq(seq(s+t mod p, s=S),t=S2)}:
        if S3 <> T then return p fi
      od
    end proc:
    map(f, [$4..100]); # Robert Israel, Jan 26 2024
  • Python
    from itertools import combinations_with_replacement
    from sympy import nextprime
    def A368055(n):
        p = 1
        while (p:=nextprime(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):
        for p in Primes():
            all_values = set()
            for x in range(p):
                for y in range(p):
                    for z in range(p): all_values.add((x^n+y^n+z^n)%p)
            if len(all_values) < p: return p
    

Formula

a(n+k*(a(n)-1)) <= a(n). - Robert Israel, Jan 26 2024