1013 數素數 20分 Haskell 題解

2021-10-11 16:57:25 字數 935 閱讀 6714

令 p​i​​ 表示第 i 個素數。現任給兩個正整數 m≤n≤10​4​​,請輸出 p​m​​ 到 p​n​​ 的所有素數。

輸入在一行中給出 m 和 n,其間以空格分隔。

輸出從 p​m​​ 到 p​n​​ 的所有素數,每 10 個數字佔 1 行,其間以空格分隔,但行末不得有多餘空格。

5 27
11 13 17 19 23 29 31 37 41 43

47 53 59 61 67 71 73 79 83 89

97 101 103

haskell 生成無窮序列素數算是經典了,隨後每10個列印一行

isprime :: int -> bool

isprime n = and [n `mod` i /= 0 | i <- [2.. floor (sqrt (fromintegral n))]]

primes :: [int]

primes = filter isprime [2..]

groupbyn :: int -> [a] -> [[a]]

groupbyn n xs = if length xs <= n then [xs] else take n xs : groupbyn n (drop n xs)

main ::io ()

main = do

lines <- getline

let xs = (map read $ words lines) :: [int]

m = head xs

n = last xs

ps = take n primes

rs = groupbyn 10 $ drop (m - 1) ps

mapm_ (putstrln . unwords . map show) rs

1013 數素數 (20 分

令 p i 表示第 i 個素數。現任給兩個正整數 m n 10 4 請輸出 p m 到 p n 的所有素數。輸入格式 輸入在一行中給出 m 和 n,其間以空格分隔。輸出格式 輸出從 p m 到 p n 的所有素數,每 10 個數字佔 1 行,其間以空格分隔,但行末不得有多餘空格。輸入樣例 5 27 ...

1013 數素數 (20 分

1013 數素數 20 分 令 p i表示第 i 個素數。現任給兩個正整數 m n 10 4 請輸出 p m到 p n的所有素數。輸入格式 輸入在一行中給出 m 和 n,其間以空格分隔。輸出格式 輸出從 pm到 p n的所有素數,每 10 個數字佔 1 行,其間以空格分隔,但行末不得有多餘空格。輸入...

1013 數素數 20 分

令 p i表示第 i 個素數。現任給兩個正整數 m n 104,請輸出 p m到 p n的所有素數。輸入格式 輸入在一行中給出 m 和 n,其間以空格分隔。輸出格式 輸出從 p m 到 p n 的所有素數,每 10 個數字佔 1 行,其間以空格分隔,但行末不得有多餘空格。輸入樣例 5 27 輸出樣例...