Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Haskell Program to Display Factors of a Number
In Haskell, we can list comprehension, filter function and recursion to display factors of a number. In the first example we are going to use (factors n = [x | x <- [1..n], n `mod` x == 0]) as list comprehension and in the second example, we are going to use (filter (\x -> n `mod` x == 0) [1..n]) function. And in third example, we are going to use recursion with base and recursive case.
Algorithm
Step 1 ? The user-defined factors function is defined using internal functions.
Step 2 ? Program execution will be started from main function. The main() function has whole control of the program. It is written as main = do.
Step 3 ? The variable named, "num" is being initialized. It will hold the number whose all factors are to be printed.
Step 4 ? The resultant factors of the given number are printed to the console using ?print? function after the function is called.
Example 1
In this example, we are going to see that how we can display all the factors of a number by using list comprehension.
factors :: Integer -> [Integer] factors n = [x | x <- [1..n], n `mod` x == 0] main :: IO () main = do let num = 24 print (factors num)
Output
[1,2,3,4,6,8,12,24]
Example 2
In this example, we are going to see that how we can display all the factors of a number by using filter function.
factors :: Integer -> [Integer] factors n = filter (\x -> n `mod` x == 0) [1..n] main :: IO () main = do let num = 24 print (factors num)
Output
[1,2,3,4,6,8,12,24]
Example 3
In this example, we are going to see that how we can display all the factors of a number by using recursion.
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)
Output
[1,2,3,4,6,8,12,24]
Conclusion
In Haskell, the factors of a number can be displayed to the console using list comprehension, filter function or recursion.
