RosettaCodeData/Task/Babbage-problem/Scheme/babbage-problem.scm

25 lines
508 B
Scheme

(define (digits n)
(string->list (number->string n)))
(define (ends-with list tail)
;; does list end with tail?
(starts-with (reverse list)
(reverse tail)))
(define (starts-with list head)
(cond ((null? head)
#t)
((null? list)
#f)
((equal? (car list) (car head))
(starts-with (cdr list) (cdr head)))
(else
#f)))
(let loop ((i 1))
(if (ends-with (digits (* i i)) (digits 269696))
i
(loop (+ i 1))))
;; 25264