> -- Geniepro писал(а):
> А что Вы сотворили-то?

Вот такой вот ужоз:

## Код:
```
prime' n = loop1 (listArray (2,n) (repeat True)) 2 n
           where
               loop1 arr i n | (i*i)>n  = arr
               loop1 arr i n | (arr ! i)= loop1 (loop2 arr (i*i) i n) (i+1) n
               loop1 arr i n            = loop1 arr (i+1) n
               loop2 arr j i n | j<=n = loop2 (arr//[(j,False)]) (j+i) i n
               loop2 arr j i n        = arr

main = do  s <- getLine
           cout (prime' $ read s) 2 (read s)

cout :: Array Int Bool -> Int -> Int -> IO ()
cout arr i n | i<=n && (arr ! i) = do print i
                                      cout arr (i+1) n
cout arr i n | i<=n = cout arr (i+1) n
cout arr i n        = print "--"
```
