Browse Source

Improve divider computation by testing with primary numbers

DricomDragon 5 năm trước cách đây
mục cha
commit
666121a6e2
1 tập tin đã thay đổi với 2 bổ sung2 xóa
  1. 2 2
      prime.hs

+ 2 - 2
prime.hs

@@ -1,6 +1,6 @@
 -- Exercice from slide 42/82
 
-dividers n = [k | k <- takeWhile (\k -> k * k <= n) [2..n], rem n k == 0]
+dividers n = [k | k <- takeWhile (\k -> k * k <= n) primeinf, 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)]
@@ -9,5 +9,5 @@ primerf n = filter (\i -> null (dividersf i)) [2..(n-1)]
 square n = n * n
 
 -- Exercice from slide 50
-primeinf = [i | i <- [2..], null (dividers i)]
+primeinf = 2:[i | i <- [3..], null (dividers i)]