import Data.List (subsequences) fermatPrimes :: Integral a => [a] fermatPrimes = [3, 5, 17, 257, 65537] possibleNumbers :: Integral a => [a] possibleNumbers = [n | m <- [0 .. 29], p <- map product $ subsequences $ fermatPrimes, let n = p * 2 ^ m, n >= 3] main :: IO () main = print . length . (\n -> filter (<= n) possibleNumbers) =<< readLn