소스 검색

Improve divider computation by testing with primary numbers

DricomDragon 5 년 전
부모
커밋
666121a6e2
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  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)]