25 lines
508 B
Scheme
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
|