View primes.clj
(defn divisible-by? [n factor]
(= (mod n factor) 0))
(defn primes []
(letfn
[(next-primes [rest-of-the-numbers]
(let [[prime & rest] rest-of-the-numbers]
(cons prime
(lazy-seq
(next-primes (filter #(not (divisible-by? % prime)) rest))))))]
View farmers-weights.scala
import scala.math._
def stone_weights(w: Int) : List[Int] = w match {
case 1 => List(1)
case _ =>
val one_third : Int = ceil((w-1).toDouble/3).toInt
w - one_third :: stone_weights (one_third)
}
println(stone_weights(40));