From 1eefd58ca4fdb5d2f51f657bfd70c9a89a4707db Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Thu, 24 May 2018 21:39:58 +0800 Subject: initial commit --- euler26.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 euler26.scm (limited to 'euler26.scm') diff --git a/euler26.scm b/euler26.scm new file mode 100644 index 0000000..6c01409 --- /dev/null +++ b/euler26.scm @@ -0,0 +1,30 @@ +(define (recur-cycle n) + (define (div_2_5 x) + (cond + ((= (remainder x 2) 0) + (div_2_5 (/ x 2))) + ((= (remainder x 5) 0) + (div_2_5 (/ x 5))) + (else x))) + (define (try-iter m r) + (if (= r 1) + m + (try-iter (+ m 1) (remainder (* r 10) n)))) + (if (= (div_2_5 n) n) + (if (= n 1) + 0 + (try-iter 1 (remainder 10 n))) + (recur-cycle (div_2_5 n)))) + +(define (longest upper) + (define (try-iter n ans anscycle) + (if (> n upper) + ans + (let ((m (recur-cycle n))) + (if (> m anscycle) + (try-iter (+ n 1) n m) + (try-iter (+ n 1) ans anscycle))))) + (try-iter 1 1 0)) + +(display (longest (read))) +(newline) -- cgit v1.2.3