Skip to content

Instantly share code, notes, and snippets.

@plaster
plaster / pe-16.clj
Last active February 18, 2017 06:52
Project Euler Problem 16 solution in Clojure
;;;; Project Euler Problem 16 solution
;;;; http://projecteuler.net/problem=16
(use 'clojure.test)
(import 'java.math.BigInteger)
;; Character/digit usage from: https://gist.github.com/4276901
(def solve
(comp (partial apply +)
(partial map #(Character/digit ^char % 10))
@plaster
plaster / pe-9.clj
Created December 15, 2012 07:21
Project Euler Problem 9 solution in Clojure (#mitori_clj)
(use 'clojure.test)
;; ピタゴラス数チェック
(defn pythagorean?
[a b c]
(= (* c c) (+ (* a a) (* b b))))
(is (pythagorean? 3 4 5))
;; 合計が a+b+c かつ 0 < a < b < c になるような組の列挙
;; seq-end-inclusive を割れそうな数の候補
(defn denominators [seq-end-inclusive]
(for [d (range 2 (+ seq-end-inclusive 1))
:while (<= (* d d) seq-end-inclusive)
]
d))
;; end-inclusive 以下の素数列をエラトステネスの篩で
(defn gen-primes [end-inclusive]
(reduce (fn [primes d] (filter #(or (= %1 d)
@plaster
plaster / pe-1.clj
Created December 9, 2012 16:18
Problem 1
(use 'clojure.set)
(defn n-multiples [n end] (set (range 0 end n)))
(defn solve []
(apply + (union (n-multiples 3 1000)
(n-multiples 5 1000))))