codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
; fractran (define (ilog b n) (let loop1 ((lo 0) (b^lo 1) (hi 1) (b^hi b)) (if (< b^hi n) (loop1 hi b^hi (* hi 2) (* b^hi b^hi)) (let loop2 ((lo lo) (b^lo b^lo) (hi hi) (b^hi b^hi)) (if (<= (- hi lo) 1) (if (= b^hi n) hi lo) (let* ((mid (quotient (+ lo hi) 2)) (b^mid (* b^lo (expt b (- mid lo))))) (cond ((< n b^mid) (loop2 lo b^lo mid b^mid)) ((< b^mid n) (loop2 mid b^mid hi b^hi)) (else mid)))))))) (define primegame '(17/91 78/85 19/51 23/38 29/33 77/29 95/23 77/19 1/17 11/13 13/11 15/14 15/2 55)) (define (fractran prog n) (let loop ((fs prog)) (cond ((null? fs) 'halt) ((integer? (* (car fs) n)) (* (car fs) n)) (else (loop (cdr fs)))))) (let loop ((n 2) (k 20)) (when (positive? k) (display n) (display " ") (loop (fractran primegame n) (- k 1)))) (newline) (define (primes) (let loop ((k 1) (n 2)) (when (= (expt 2 (ilog 2 n)) n) (display k) (display " ") (display (ilog 2 n)) (newline)) (loop (+ k 1) (fractran primegame n)))) (primes)
Private
[
?
]
Run code
Submit