浏览代码

Improve the divider compution with square root limit

DricomDragon 5 年之前
父节点
当前提交
abad83c71f
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      prime.hs

+ 1 - 1
prime.hs

@@ -1,6 +1,6 @@
 -- Exercice from slide 42/82
 
-dividers n = [k | k <- [2..(n-1)], rem n k == 0]
+dividers n = [k | k <- takeWhile (\k -> k * k <= n) [2..n], rem n k == 0]
 dividersf n = filter (\k -> rem n k == 0) [2..(n-1)]
 
 primer n = [i | i <- [2..(n-1)], null (dividers i)]