プロジェクト

全般

プロフィール

操作

Problem 7 » 履歴 » リビジョン 1

リビジョン 1/5 | 次 »
Noppi, 2023/12/27 01:42


ホーム - Project Euler

Problem 7

#!r6rs
#!chezscheme

(import (chezscheme))

(define (prime? num)
  (if (even? num)
    #f
    (let ((count (isqrt num)))
      (let loop ((check-num 3))
        (cond
          [(< count check-num) #t]
          [(zero? (mod num check-num)) #f]
          [else (loop (+ check-num 2))])))))

(define answer-7
  (let loop ((current 3) (count 1) (prime 2))
    (if
      (= 10001 count)
      prime
      (let ((next (+ current 2)))
        (if (prime? current)
          (loop next (add1 count) current)
          (loop next count prime))))))

(printf "7: ~D~%" answer-7)

Noppi2023/12/27に更新 · 1件の履歴