hasdiv n == hasdiv1 (n - 1) n hasdiv1 0 n == false hasdiv1 1 n == false hasdiv1 a n == true <| n % a = 0 |> hasdiv1 (a - 1) n prime 1 == false prime n == not (hasdiv n) howmanydivisors n == hmd1 2 n hmd1 a a == 0 hmd1 a b == 1 + n <| b % a = 0 |> n \ where { n == hmd1 (a + 1) b } primesbetween a b == 0 <| a > b |> \ 1 + n <| prime a |> \ n \ where { n == primesbetween (a + 1) b }