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