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.

User: Sebastian Magee

Sebastian Magee's wiki page.

Sebastian Magee has authored 2 sequences.

A346137 Numbers k such that k^3 = x^3 + y^3 + z^3, x > y > z >= 0, has at least 2 distinct solutions.

Original entry on oeis.org

18, 36, 41, 46, 54, 58, 60, 72, 75, 76, 81, 82, 84, 87, 88, 90, 92, 96, 100, 108, 114, 116, 120, 123, 126, 132, 134, 138, 140, 142, 144, 145, 150, 152, 156, 159, 160, 162, 164, 168, 170, 171, 174, 176, 178, 180, 184, 185, 186, 189, 190, 192, 198, 200, 201, 202, 203
Offset: 1

Author

Sebastian Magee, Jul 30 2021

Keywords

Comments

This sequence is based on a generalization of Fermat's last theorem with n=3, in which three terms are added. Fermat's Theorem states that there are no solution with only two terms, this sequence shows there are many integers for which there are multiple solutions if three terms are allowed. The sequence is also related to the Taxicab numbers.

Examples

			41 is in the sequence because 41^3 = 33^3 + 32^3 + 6^3 = 40^3 + 17^3 + 2^3.
		

Crossrefs

Subsequence of A023042.

Programs

  • Mathematica
    q[k_] := Count[IntegerPartitions[k^3, {3}, Range[0, k-1]^3], ?(UnsameQ @@ # &)] > 1; Select[Range[200], q] (* _Amiram Eldar, Sep 03 2021 *)
  • Python
    from itertools import combinations
    from collections import Counter
    from sympy import integer_nthroot
    def icuberoot(n): return integer_nthroot(n, 3)[0]
    def aupto(kmax):
        cubes = [i**3 for i in range(kmax+1)]
        cands, cubesset = (sum(c) for c in combinations(cubes, 3)), set(cubes)
        c = Counter(s for s in cands if s in cubesset)
        return sorted(icuberoot(s) for s in c if c[s] >= 2)
    print(aupto(203)) # Michael S. Branicky, Sep 04 2021

A346071 a(n) is the smallest number m such that m^3 = x^3 + y^3 + z^3, x > y > z > 0, has at least n different solutions.

Original entry on oeis.org

6, 18, 54, 87, 108, 174, 174, 324, 324, 324, 492, 492, 492, 984, 984, 1296, 1296, 1296, 1440, 1440, 2592, 2592, 2592, 2592, 3960, 3960, 3960, 3960, 4320, 4320, 4320, 5760, 5940, 5940, 5940, 5940, 5940, 5940, 8640, 9900, 9900, 9900, 11880, 11880, 11880, 11880, 11880
Offset: 1

Author

Sebastian Magee, Jul 30 2021

Keywords

Comments

a(n) is the smallest number for which there are at least n sets of positive integers (b_i, c_i, d_i) i=1..n which satisfy the equation a(n)^3 = b_i^3 + c_i^3 + d_i^3.
This sequence is related to Euler's sum of powers conjecture. In particular to the case k=3, a(n) is the smallest number that has at least n different solutions to the equation.
The sequences of numbers whose cubes can be expressed as the sum of 3 positive cubes in at least n ways for n = 1, 2, 3, ... form a family of related sequences. This sequence is the sequence of first terms in that family of sequences.
The first of this family is A023042.

Examples

			a(1) = 6 because 6^3 = 5^3 + 4^3 + 3^3; 6 = a(1) = A023042(1).
a(2) = 18 because 18^3 = 15^3 + 12^3 + 9^3 = 16^3 + 12^3 + 2^3.
a(3) = 54 because 54^3 = 45^3 + 36^3 + 27^3 = 48^3 + 36^3 + 6^3 = 53^3 + 19^3 + 12^3.
		

Crossrefs

Programs

  • Python
    import numpy as np
    def residual(a,b,c,d, exp=3):
        return a**exp-b**exp-c**exp-d**exp
    def test(max_n,k=3):
        ans=dict()
        for a in range(max_n):
            #print(a)
            for b in range(int(np.ceil((a**k/3)**(1/k))),a):
                n3=a**k-b**k
                for c in range(int(np.ceil((n3/2)**(1/k))),b):
                    m3=n3-c**k
                    if m3<0:
                        break;
                    l=int(np.ceil((m3)**(1/k)))
                    options=[l,l-1]
                    for d in options:
                        res=residual(a,b,c,d, exp=k)
                        if res==0:
                            if a in ans.keys():
                                ans[a].append((a,b,c,d))
                            else:
                                ans[a]=[(a,b,c,d)]
                            #print("found:",(a,b,c,d))
                            break
                        else:
                            #print("tested: {0}, residual: {1}".format((a,b,c,d),res))
                            if res>0:
                                break
        return ans
    def serie(N):
        result=test(N)
        results_by_number_of_answers=[]
        results_by_number_of_answers.append(result)
        temp=dict()
        for k in result.keys():
            if len(result[k])>=2:
                temp[k]=result[k]
        results_by_number_of_answers.append(temp)
        i=3
        while len(temp)>0:
            temp=dict()
            for k in results_by_number_of_answers[-1].keys():
                if len(results_by_number_of_answers[-1][k])>=i:
                    temp[k]=result[k]
            if len(temp)>0:
                results_by_number_of_answers.append(temp)
            i+=1
        return [next(iter(a)) for a in results_by_number_of_answers]
    #Get the elements of the serie up until A_n>1000
    A=serie(1000)
    print(A)
    
  • Python
    from itertools import combinations
    from collections import Counter
    from sympy import integer_nthroot
    def icbrt(n): return integer_nthroot(n, 3)[0]
    def aupto(mmax):
        cbs = [i**3 for i in range(mmax+1)]
        cbsset = set(cbs)
        c = Counter(sum(c) for c in combinations(cbs, 3) if sum(c) in cbsset)
        nmax = max(c.values())
        return [min(icbrt(s) for s in c if c[s] >= n) for n in range(1, nmax+1)]
    print(aupto(500)) # Michael S. Branicky, Sep 04 2021

Extensions

a(16)-a(31) from Jinyuan Wang, Aug 02 2021
More terms from David A. Corneth, Sep 04 2021