Programación De La Raqueta. ¿A dónde me voy mal?

La pregunta que estoy tratando de responder:
Los factores primos de 13195 son 5, 7, 13 y 29. ¿Cuál es el factor primo más grande del número 600851475143?

¿A dónde me voy mal? mi mejor momento La prueba parece ser el problema, pero funciona bien en números relativamente pequeños. Sin embargo, el principal? La prueba da una respuesta incorrecta con números más grandes. ¿Hay una manera más fácil de hacer esto?

    (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)))

Respuestas a la pregunta(2)

Su respuesta a la pregunta