summaryrefslogtreecommitdiff
path: root/prime.hs
diff options
context:
space:
mode:
authorJoe Zhao <ztuowen@gmail.com>2014-08-09 10:58:03 +0800
committerJoe Zhao <ztuowen@gmail.com>2014-08-09 10:58:03 +0800
commit5bdaa1e4ffe40add10f000ee993e6b500c419a37 (patch)
tree46a624488ece8d37fa3580422234ed2b4acc6728 /prime.hs
parent01aa73b269f7ad780233be338affdf3c9288b1ed (diff)
downloadhaskbox-old-5bdaa1e4ffe40add10f000ee993e6b500c419a37.tar.gz
haskbox-old-5bdaa1e4ffe40add10f000ee993e6b500c419a37.tar.bz2
haskbox-old-5bdaa1e4ffe40add10f000ee993e6b500c419a37.zip
add files from home for previous chapters and sandboxes
Diffstat (limited to 'prime.hs')
-rw-r--r--prime.hs11
1 files changed, 11 insertions, 0 deletions
diff --git a/prime.hs b/prime.hs
new file mode 100644
index 0000000..2407280
--- /dev/null
+++ b/prime.hs
@@ -0,0 +1,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