Skip to content

Instantly share code, notes, and snippets.

@bendisposto
Created November 6, 2014 13:14
Show Gist options
  • Save bendisposto/f7e700cb8fe5d9d3eae9 to your computer and use it in GitHub Desktop.
Save bendisposto/f7e700cb8fe5d9d3eae9 to your computer and use it in GitHub Desktop.
vl_06_11_2014
(ns repl.freestyle)
(set! *print-length* 50)
(let [r (range 100 -101 -1)]
[(first r) (last r)])
(let [r (range 0 1002 2)]
[(first r) (last r)])
(filter even? (range 1002))
(defn sq [x] (* x x))
(take-while (fn [e] (< e 1001)) (map sq (range)))
(drop-while (fn [e] (< e 100)) (range 1 200))
(for [x (range 1 1000)] [x (inc (sq x))])
(let [x (range 10)]
(for [a x
b x
c x :when (< a b c)] [a b c b a]))
(map (fn [[x y _]] [x y])
(filter (fn [[x y z]] z) (for [x [1 2 3] y [:a :b :c] z [true false]][x y z])))
(frequencies (for [x (range 1 4) y (range 1 4)] (* x y)))
;// Determine if Mp = 2p − 1 is prime
;Lucas–Lehmer(p)
; var s = 4
; var M = 2p − 1
; repeat p − 2 times:
; s = ((s × s) − 2) mod M
; if s = 0 return PRIME else return COMPOSITE
(defn pot [x] (reduce *' 1 (repeat x 2)))
(pot 5)
(defn lamer [p]
(when (zero?
(let [M (dec (pot p))]
(reduce (fn [s _] (-> s sq (- 2) (mod M))) 4 (range (- p 2)))))
true))
(loop [p 1]
(println p)
(when (< p 10) (recur (inc p))))
(defn fakt [n]
(loop [p n
c 0]
(if (even? p)
(recur (/ p 2) (inc c))
c)))
(defn perfect? [n]
(when (<= 2 n)
(let [
c (inc (fakt n))
a (pot (dec c))
b (dec (pot c))
] (and (= n (* a b)) (lamer c)))))
(perfect? 33550336)
(take 5 (filter perfect? (filter even? (range))))
(def remove-duplicates distinct)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment