素数
素数を列挙するプログラム
-------------------------------------------------- -- prime.hs -------------------------------------------------- import System.Environment(getArgs) -------------------------------------------------- -- prime 2 0 list primes from 2 to infinite -- prime start end list primes from start to end -------------------------------------------------- prime :: Integer -> Integer -> [Integer] prime start 0 = [x | x <- [start..], isPrime x 2] prime start end = [x | x <- [start..end], isPrime x 2] -------------------------------------------------- -- judge the number is prime -- if the number is prime, then True otherwise False -------------------------------------------------- isPrime :: Integer -> Integer -> Bool isPrime n x | (div n 2) < x = True | (mod n x) == 0 = False | otherwise = isPrime n (x+1) -------------------------------------------------- main = do arg1:arg2:rest <- getArgs let start = read arg1 :: Integer let end = read arg2 :: Integer let primes = prime start end print primes