OFFSET
1,2
COMMENTS
While it can be proved that the related sequence A162935 is finite, I'm not sure whether this sequence is also finite.
Ramanujan proved that the asymptotic limit of the ratio between consecutive highly composite numbers is 1. Therefore this sequence is finite. Erdős proved that for two consecutive highly composite numbers k < k', k'/k <= 1 + 1/log(k)^c with c = 3/32. Nicolas improved the value to c = log(15/8)/(8*log(2)) = 0.113... thus the largest term of this sequence is below exp(2^(1/c)) < 3 * 10^196. By checking the terms of A002182 up to this bound it was found that there are 62 terms in this sequence, the largest is being A002182(1349) ~ 1.158... * 10^98. - Amiram Eldar, Aug 20 2019
LINKS
Amiram Eldar, Table of n, a(n) for n = 1..62
Paul Erdős, On highly composite numbers, Journal of the London Mathematical Society, Vol. 19, No. 75 (1944), pp. 130-133, alternative link.
Jean-Louis Nicolas, Répartition des nombres hautement composés de Ramanujan, Canadian Journal of Mathematics, Vol. 23, No. 1 (1971), pp. 116-130.
Srinivasa Ramanujan, Highly composite numbers, Proceedings of the London Mathematical Society, Series 2, Vol. 14, No. 1 (1915), pp. 347-409, alternative link.
PROG
(Haskell)
import Data.Ratio
import Data.Set (Set)
import qualified Data.Set as Set
printList :: (Show a) => [a] -> IO()
printList = putStr . concat . map (\x -> show x ++ "\n")
isPrime n
| n >= 2 = all isNotDivisor $ takeWhile smallEnough primes
| otherwise = False
where
isNotDivisor d = n `mod` d /= 0
smallEnough d = d^2 <= n
primes = 2 : filter isPrime [ 2 * n + 1 | n <- [1..] ]
primeSynthesis = partialSynthesis 1 primes
where
partialSynthesis n _ [] = n
partialSynthesis n (p:ps) (c:cs) = partialSynthesis (n * p^c) ps cs
primeAnalysis n
| n < 1 = undefined
| n == 1 = []
| n > 1 = reverse $ buildPrimeCounts [0] n
where
buildPrimeCounts (c:cs) n
| n == 1 = (c:cs)
| n `mod` p == 0 = buildPrimeCounts (c+1 : cs) (n `div` p)
| otherwise = buildPrimeCounts (0:c:cs) n
where p = primes !! (length cs)
divisorCount n = product $ map (+1) $ primeAnalysis n
primorialProducts = resFrom 1
where
resFrom n = resBetween n (4*n - 1) ++ resFrom (4*n)
resBetween start end = Set.toAscList $ Set.fromList $ unorderedList
where
unorderedList = filter (>= start) (1 : build 0 [])
build pos exponents
| nextNumber <= end = nextNumber : build 0 nextCombination
| newPrime = []
| otherwise = build (pos + 1) exponents
where
newPrime = pos >= length exponents
nextCombination
| newPrime = replicate (length exponents + 1) 1
| otherwise = replicate (pos + 1) ((exponents !! pos) + 1)
++ drop (pos + 1) exponents
nextNumber = primeSynthesis nextCombination
filterStrictlyMonotonicDivisorCount = filterRest 0
where
filterRest _ [] = []
filterRest lim (num:nums)
| divisorCount num > lim = num : filterRest (divisorCount num) nums
| otherwise = filterRest lim nums
highlyCompositeNumbers
= filterStrictlyMonotonicDivisorCount primorialProducts
findGaps [] = []
findGaps [_] = []
findGaps (x1:x2:xs)
| x1 * 3 <= x2 * 2 = (x1, x2) : findGaps (x2:xs)
| otherwise = findGaps (x2:xs)
main = mapM (putStrLn . show . fst) (findGaps highlyCompositeNumbers)
CROSSREFS
KEYWORD
nonn,fini,full,changed
AUTHOR
Jan Behrens (jbe-oeis(AT)magnetkern.de), Jul 17 2009
EXTENSIONS
a(32)-a(33) from Amiram Eldar, Aug 20 2019
STATUS
approved