Browse Source

Improve divider computation by testing with primary numbers

DricomDragon 5 years ago
parent
commit
666121a6e2
1 changed files with 2 additions and 2 deletions
  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)]