; three more homework problems
(define (adjoin x xs)
(if (member x xs) xs (cons x xs)))
(define (problem1 xs)
(let loop ((xs xs) (zs (list)))
(if (null? xs) zs
(loop (cdr xs) (adjoin (car xs) zs)))))
(display (problem1 '(3 2 4 2 7 3 5 1 3))) (newline)
(define (problem2 xs ys)
(let loop ((xs xs) (ys ys) (zs (list)))
(cond ((or (null? xs) (null? ys))
(reverse zs))
((< (car xs) (car ys))
(loop (cdr xs) ys zs))
((< (car ys) (car xs))
(loop xs (cdr ys) zs))
(else (loop (cdr xs) (cdr ys)
(cons (car xs) zs))))))
(display (problem2 '(2 3 5 5 6 7 8 9) '(1 2 4 5 5 7))) (newline)
(define (iroot k n)
(let ((k-1 (- k 1)))
(let loop ((u n) (s (+ n 1)))
(if (<= s u) s
(loop (quotient (+ (* k-1 u) (quotient n (expt u k-1))) k) u)))))
(define (problem3 n)
(let ((n3 (iroot 3 n)))
(= (* n3 n3 n3) n)))
(display (problem3 125)) (newline)
(display (problem3 121)) (newline)
OyB0aHJlZSBtb3JlIGhvbWV3b3JrIHByb2JsZW1zCgooZGVmaW5lIChhZGpvaW4geCB4cykKICAoaWYgKG1lbWJlciB4IHhzKSB4cyAoY29ucyB4IHhzKSkpCgooZGVmaW5lIChwcm9ibGVtMSB4cykKICAobGV0IGxvb3AgKCh4cyB4cykgKHpzIChsaXN0KSkpCiAgICAoaWYgKG51bGw/IHhzKSB6cwogICAgICAobG9vcCAoY2RyIHhzKSAoYWRqb2luIChjYXIgeHMpIHpzKSkpKSkKCihkaXNwbGF5IChwcm9ibGVtMSAnKDMgMiA0IDIgNyAzIDUgMSAzKSkpIChuZXdsaW5lKQoKKGRlZmluZSAocHJvYmxlbTIgeHMgeXMpCiAgKGxldCBsb29wICgoeHMgeHMpICh5cyB5cykgKHpzIChsaXN0KSkpCiAgICAoY29uZCAoKG9yIChudWxsPyB4cykgKG51bGw/IHlzKSkKICAgICAgICAgICAgKHJldmVyc2UgenMpKQogICAgICAgICAgKCg8IChjYXIgeHMpIChjYXIgeXMpKQogICAgICAgICAgICAobG9vcCAoY2RyIHhzKSB5cyB6cykpCiAgICAgICAgICAoKDwgKGNhciB5cykgKGNhciB4cykpCiAgICAgICAgICAgIChsb29wIHhzIChjZHIgeXMpIHpzKSkKICAgICAgICAgIChlbHNlIChsb29wIChjZHIgeHMpIChjZHIgeXMpCiAgICAgICAgICAgICAgICAgICAgICAoY29ucyAoY2FyIHhzKSB6cykpKSkpKQoKKGRpc3BsYXkgKHByb2JsZW0yICcoMiAzIDUgNSA2IDcgOCA5KSAnKDEgMiA0IDUgNSA3KSkpIChuZXdsaW5lKQoKKGRlZmluZSAoaXJvb3QgayBuKQogIChsZXQgKChrLTEgKC0gayAxKSkpCiAgICAobGV0IGxvb3AgKCh1IG4pIChzICgrIG4gMSkpKQogICAgICAoaWYgKDw9IHMgdSkgcwogICAgICAgIChsb29wIChxdW90aWVudCAoKyAoKiBrLTEgdSkgKHF1b3RpZW50IG4gKGV4cHQgdSBrLTEpKSkgaykgdSkpKSkpCgooZGVmaW5lIChwcm9ibGVtMyBuKQogIChsZXQgKChuMyAoaXJvb3QgMyBuKSkpCiAgICAoPSAoKiBuMyBuMyBuMykgbikpKQoKKGRpc3BsYXkgKHByb2JsZW0zIDEyNSkpIChuZXdsaW5lKQooZGlzcGxheSAocHJvYmxlbTMgMTIxKSkgKG5ld2xpbmUp