- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# 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.