A162936 Highly composite numbers (A002182) whose following highly composite number is at least 3/2 times greater.
1, 2, 4, 6, 12, 24, 60, 120, 240, 360, 840, 1680, 2520, 5040, 10080, 27720, 55440, 110880, 332640, 720720, 1441440, 4324320, 21621600, 73513440, 367567200, 735134400, 1396755360, 6983776800, 13967553600, 27935107200, 160626866400, 321253732800, 642507465600
Offset: 1
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.
Programs
-
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)
Extensions
a(32)-a(33) from Amiram Eldar, Aug 20 2019
Comments