Prime number cheking

module Main where
import IO

– function ost( A, B ) returns residue of division of A number by B number
ost :: Integer -> Integer -> Integer
ost a b | a >= b = ost (a-b) b
ost a b | a < b = a

– In mathematics, “a prime number” (or “a prime”) is a natural number
– which has exactly two distinct natural number divisors: 1 and itself
pr :: Integer -> Bool
pr 1 = False
pr 2 = True
pr n = dne n 2 (n-1)

–ned A B C == “There is no devisors of A at [B,C] segment”
dne :: Integer -> Integer -> Integer -> Bool
dne a b c | b == c = (ost a b /= 0)
dne a b c | b > c = True
dne a b c | b < c = (dne a b (c-1))&&(dne a c c)

readNum :: IO Integer
readNum = readLn

main = do
hSetBuffering stdout NoBuffering
putStr “Enter A: ”
a <- readNum

putStr (“The “++ show (a) ++ ” is a Prime number = ” ++ show (pr a) ++ “\n”)

Leave a comment

Your comment