main = do
    n <- readLn :: IO Int
    print $ sum $ map (findG . snd) $ pfacTup n

findG n = length $ takeWhile (<=n) $ scanl1 (+) [1..]

sqrtInt :: Int -> Double
sqrtInt = sqrt . fromIntegral

pfacTup :: Int -> [(Int,Int)]
pfacTup n = fAux (takeWhile(<=floor(sqrtInt n))primes) n where
    fAux    _     1 = []
    fAux    []    n = [(n,1)]
    fAux q@(p:ps) n = if n`rem`p==0
        then let e = head (dropWhile (\x-> n`rem`(p^x) == 0) [1..])-1
            in (p,e):(fAux q (n`quot`(p^e)))
        else fAux ps n

primes :: [Int]
primes = f [2..] where f (p:ps) = p:(filter ((/=0).(`rem`p)) ps)