プロジェクト

全般

プロフィール

Problem 4 » 履歴 » バージョン 2

Noppi, 2023/12/27 01:38

1 1 Noppi
[ホーム](https://redmine.noppi.jp) - [[Wiki|Project Euler]]
2
# [[Problem 4]]
3
4
```scheme
5
#!r6rs
6
#!chezscheme
7
8
(import (chezscheme))
9
10
(define (RotationNumber? num)
11
  (let* ((num-string (number->string num))
12
         (str-length (string-length num-string))
13
         (count (div str-length 2)))
14
    (let loop ((index 0))
15
      (cond
16
        [(<= count index) #t]
17
        [(equal? (string-ref num-string index) (string-ref num-string (- str-length 1 index)))
18
         (loop (add1 index))]
19
        [else #f]))))
20
21 2 Noppi
(define answer-4
22 1 Noppi
  (let loop1 ((num1 100)
23
              (result 0))
24
    (if (< 999 num1)
25
      result
26
      (let loop2 ((num2 100)
27
                  (result result))
28
        (if (< 999 num2)
29
          (loop1 (add1 num1) result)
30
          (let ((num (* num1 num2)))
31
            (if (RotationNumber? num)
32
              (loop2 (add1 num2) (max result num))
33
              (loop2 (add1 num2) result))))))))
34
35
(printf "4: ~D~%" answer-4)
36
```