Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Too optimized for you?

Name: Anonymous 2009-11-02 17:04


(define (prime? x)
  (define (inner i)
    (cond ((> i (sqrt x)) #t)
          ((= (remainder x i) 0) #f)
          (else (inner (+ i 1)))))
    (inner 2))

(define (factor x)
  (define (times x i)
    (define (inner x n)
      (if (= (remainder x i) 0)
          (inner (/ x i) (+ n 1))
          n))
      (inner x 0))

  (define (inner x i l)
    (cond ((= 1 x) l)
          ((not (prime? i)) (inner x (+ i 1) l))
          ((not (= (times x i) 0)) (inner (/ x (expt i (times x i))) (+ i 1) (cons (list i (times x i)) l)))
          (else (inner x (+ i 1) l))))
  (inner x 2 '()))

(define (pprint-factor lst)
  (define (inner l)
    (if (null? l) #f
    (begin
      (display (car (car l)))(display "^")(display (cadar l))(display " ")
      (inner (cdr l)))))
  (inner lst))


(display "Enter number to prime factorize:")(newline)
(pprint-factor (factor (read)))

Name: Anonymous 2009-11-03 10:14

Write this in C and enjoy your 500+ lines of code.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List