I did not figure out how to get sub-millisecond-precision timing data from MIT/GNU Scheme. With millisecond timing data, I needed to user larger numbers to get meaningful results. However, around 10¹² to 10¹⁶ this starts to give meaningful results, which do indeed bear out the timing prediction that each additional factor of ten runs about three times as long. I also changed the functions provided, I'm not sure how one was expected to write search-for-primes using the provided functions which return no value and only dump output to the console... (define (start-prime-test n start-time) (if (prime? n) (report-prime (- (process-time-clock) start-time)) #f)) (define (report-prime elapsed-time) (display " *** ") (display elapsed-time) #t) (define (search-for-primes n) (if (timed-prime-test n) n (search-for-primes (+ n 1))))