blob: 2407280cc6ebbd2cb558ec100bf71d7421d7bea3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
|
prime = [x| x<-[2,3..], null [y|y<-[2,3..floor $ sqrt(fromIntegral x)],mod x y ==0] ]
primes r [] = r
primes r (p:ps) = if null [y|y<-r,mod p y == 0]
then p:(primes (p:r) ps)
else primes r ps
pr = 2:(ps [3,5..])
ps (x:xr) = x:(ps (filter rem xr))
where rem y = (mod y x) /=0
|