Sequence: smallest number greater than previous term with exactly n divisors: Difference between revisions

Content added Content deleted
Line 302: Line 302:


sequence_A069654 :: [(Int,Int)]
sequence_A069654 :: [(Int,Int)]
sequence_A069654 = go 1 $ (,) <*> countDivs <$> [1..]
sequence_A069654 = go 1 $ (,) <*> countDivisors <$> [1..]
where
where
countDivs n = foldr f 0 [1..floor (sqrt $ realToFrac n)]
countDivisors n = foldr f 0 [1..floor (sqrt $ realToFrac n)]
where
where
f d r | n `mod` d == 0 = let y = n `div` d in if d == y then r+1 else r+2
f d r | n `mod` d == 0 = let y = n `div` d in if d == y then r+1 else r+2