Haskell 程序显示数字的因子
在 Haskell 中,我们可以使用列表推导式、filter 函数和递归来显示数字的因子。在第一个示例中,我们将使用 (factors n = [x | x <- [1..n], n `mod` x == 0]) 作为列表推导式,在第二个示例中,我们将使用 (filter (\x -> n `mod` x == 0) [1..n]) 函数。在第三个示例中,我们将使用带有基本情况和递归情况的递归。
算法
步骤 1 − 使用内部函数定义用户定义的 factors 函数。
步骤 2 − 程序执行将从 main 函数开始。main() 函数控制整个程序。它被写成 main = do。
步骤 3 − 初始化名为“num”的变量。它将保存要打印所有因子的数字。
步骤 4 − 使用 'print' 函数在函数调用后将给定数字的所得因子打印到控制台。
示例 1
在这个例子中,我们将了解如何使用列表推导式显示数字的所有因子。
factors :: Integer -> [Integer] factors n = [x | x <- [1..n], n `mod` x == 0] main :: IO () main = do let num = 24 print (factors num)
输出
[1,2,3,4,6,8,12,24]
示例 2
在这个例子中,我们将了解如何使用 filter 函数显示数字的所有因子。
factors :: Integer -> [Integer] factors n = filter (\x -> n `mod` x == 0) [1..n] main :: IO () main = do let num = 24 print (factors num)
输出
[1,2,3,4,6,8,12,24]
示例 3
在这个例子中,我们将了解如何使用递归显示数字的所有因子。
factors :: Integer -> [Integer] factors n = factors' n 1 factors' :: Integer -> Integer -> [Integer] factors' n i | i > n = [] | n `mod` i == 0 = i : factors' n (i+1) | otherwise = factors' n (i+1) main :: IO () main = do let num = 24 print (factors num)
输出
[1,2,3,4,6,8,12,24]
结论
在 Haskell 中,可以使用列表推导式、filter 函数或递归将数字的因子显示到控制台。
广告