# Prime Number in Haskell

Published on 28 April 2022 (Updated: 18 September 2022) Welcome to the Prime Number in Haskell page! Here, you'll find the source code for this program as well as a description of how the program works.

## Current Solution

``````module Main where

import System.Environment

isPrime :: Integral a => a -> Bool
isPrime 0 = False
isPrime 1 = False
isPrime 2 = True
isPrime x = null [n | n <- 2:[3,5..integralSqrt x], x `mod` n == 0]
where integralSqrt = round . sqrt .fromIntegral

output :: Bool -> String
output True = "Prime"
output False = "Composite"

headMaybe :: [a] -> Maybe a
headMaybe [] = Nothing
headMaybe (x:xs) = Just x

main :: IO ()
main = do
args <- getArgs
let x = headMaybe args
case x >>= readMaybe of
Nothing -> putStrLn "Usage: please input a non-negative integer"
Just x
| x < 0       -> putStrLn "Usage: please input a non-negative integer"
| otherwise   -> putStrLn \$ output \$ isPrime x
``````

Prime Number in Haskell was written by:

• Parker Johansen

If you see anything you'd like to change or update, please consider contributing.

Note: The solution shown above is the current solution in the Sample Programs repository as of May 02 2019 11:43:38. The solution was first committed on Nov 16 2018 22:37:33. As a result, documentation below may be outdated.

## How to Implement the Solution

No 'How to Implement the Solution' section available. Please consider contributing.

## How to Run the Solution

No 'How to Run the Solution' section available. Please consider contributing.