Программирование ракеток. Куда я иду не так?
Вопрос яЯ пытаюсь ответить:
Основными факторами 13195 являются 5, 7, 13 и 29. Какой самый большой главный фактор числа 600851475143?
Куда я иду не так? мой премьер? Тест, кажется, проблема, но она отлично работает на относительно небольших количествах. Однако премьер? Тест дает неправильный ответ с большими числами. Есть ли более простой способ сделать это?
(define b 3)
(define z 0)
(define divides?
(lambda (a b)
(= (remainder a b) 0)))
(define (prime? n)
(cond
((or (= n 1) (= n 0)) false)
((even? n) false)
((= n 2) true)
((= n b) true)
((divides? n b) false)
(else (and (set! b (+ b 1)) (prime? n)))))
;Largest Prime Factor Test
(define (LPF x)
(cond
((divides? 600851475143 x)
(cond
((prime? x)
(cond
((> x z) (set! z x)))))))
(if (< x 775146) (LPF (+ x 1)) (display z)))