summaryrefslogtreecommitdiff
path: root/euler57.scm
blob: aa8972af2c4dff8064762a1d58be4f12d57b5fa9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(define (expension n)
 (define (e n)
  (if (= n 1) (/ 1 2)
   (/ 1 (+ 2 (e (- n 1))))))
 (+ 1 (e n)))

(define (digits n)
 (if (< n 10) 1 (+ 1 (digits (quotient n 10)))))

(define (solve n)
 (if (= n 0) 0
  (+ (solve (- n 1))
   (let ((t (expension n)))
	(if (> (digits (numerator t)) (digits (denominator t))) 1 0)))))

(display (solve 1000))
(newline)