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 函式或遞迴將數字的因子顯示到控制檯。

更新於: 2023年3月13日

528 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.