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.

Showing 1-1 of 1 results.

A162935 Highly composite numbers (A002182) with property that the next highly composite number is more than 3/2 times greater.

Original entry on oeis.org

1, 2, 6, 12, 60, 360, 2520, 27720
Offset: 1

Views

Author

Jan Behrens (jbe-oeis(AT)magnetkern.de), Jul 17 2009

Keywords

Comments

It can be proved that this sequence is finite, just like A072938, and that there are no further terms.
This sequence is a subsequence of A162936.

Crossrefs

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
    findBigGaps [] = []
    findBigGaps [_] = []
    findBigGaps (x1:x2:xs)
      | x1 * 3 < x2 * 2 = (x1, x2) : findBigGaps (x2:xs)
      | otherwise = findBigGaps (x2:xs)
    main = mapM (putStrLn . show . fst) (findBigGaps highlyCompositeNumbers)
Showing 1-1 of 1 results.