login
A387184
Numbers d such that a!*b!*c!*d! is a perfect square for some 1<=a<b<c<d.
7
6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 30, 32, 33, 34, 35, 36, 38, 39, 40, 42, 44, 45, 48, 49, 50, 51, 52, 54, 55, 56, 57, 60, 62, 63, 64, 66, 68, 70, 72, 75, 76, 77, 78, 80, 81, 82, 84, 85, 88, 90, 91, 92, 95, 96, 98, 99, 100, 102, 104, 105, 108
OFFSET
1,1
COMMENTS
Contains A388851 (except for 4).
Any number of the form n^2*m with n,m>1 lies in the sequence since (m-1)!*m!*(n^2*m-1)!*(n^2*m)! is a perfect square. Also, any number of the form p^2 with p an odd prime lies in the sequence since 3!*4!*(p^2-1)!*p^2! is a perfect square. Thus the sequence contains A013929 (except for 4), which is conjectured by Erdős and Graham to be the dominant portion of this sequence (see also Erdős problem 374).
Either a < b < A151799(d) or A151799(d) <= a < b. - Chai Wah Wu, Sep 26 2025
LINKS
Thomas Bloom, Problem 374, Erdős Problems.
P. Erdős and R. L. Graham, On products of factorials, Bull. Inst. Math. Acad. Sinica 4 (1976), pp. 337-355.
P. Erdős and R. L. Graham, Old and new problems and results in combinatorial number theory, Monographies de L'Enseignement Mathématique (1980).
EXAMPLE
6 lies in the sequence because 1!*3!*5!*6! = 720^2 is a perfect square.
PROG
(Python) import math
def is_square(n):
r = math.isqrt(n)
return r * r == n
def test(d):
for c in range(1, d):
for b in range(1, c):
for a in range(1, b):
val = math.factorial(d) // math.factorial(c)
val *= math.factorial(b) // math.factorial(a)
if is_square(val):
return True
return False
(Python)
from math import prod
from itertools import count, islice
from sympy import factorint, integer_nthroot, isprime
def A387184_gen(): # generator of terms
g, p, r = [set()], 0, {}
for c in count(2):
f = factorint(c)
d = g[-1]^set(i for i, j in f.items() if j&1)
for h in g:
if (t:=prod(d^h)) not in r:
r[t] = c-1
g.append(d)
x, y = integer_nthroot(c, 2)
if c>4 and y and isprime(x):
yield c
elif c>4 and max(f.values())>1:
yield c
else:
for b in range(c-2, p, -1):
e = prod(d^g[b])
if e in r and r[e]<b:
yield c
break
if isprime(c):
p = c-2
A387184_list = list(islice(A387184_gen(), 50)) # Chai Wah Wu, Sep 24 2025, updated Oct 05 2025
CROSSREFS
Contains A013929 and most of A388851.
Sequence in context: A054047 A372792 A056653 * A285847 A231879 A062973
KEYWORD
nonn
AUTHOR
Terence Tao, Sep 23 2025
STATUS
approved