diff options
author | Raphael McSinyx <vn.mcsinyx@gmail.com> | 2017-02-22 14:51:37 +0700 |
---|---|---|
committer | Raphael McSinyx <vn.mcsinyx@gmail.com> | 2017-02-22 14:51:37 +0700 |
commit | 7ebfa64719d4ac86b30075c65f21eafe9097853e (patch) | |
tree | cf9d59c492bd650258cf139d000d45fb6b8357fb /others/volume1/112.scm | |
parent | 7d19f480637e9e880b98dabfbcf8e885b0a2d3b9 (diff) | |
download | cp-7ebfa64719d4ac86b30075c65f21eafe9097853e.tar.gz |
Updare README.md
Diffstat (limited to 'others/volume1/112.scm')
-rw-r--r-- | others/volume1/112.scm | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/others/volume1/112.scm b/others/volume1/112.scm new file mode 100644 index 0000000..c03bfdc --- /dev/null +++ b/others/volume1/112.scm @@ -0,0 +1,12 @@ +(define (sqr x) (* x x)) +(define (distance n) + (let distance-iter ((hi (inexact->exact (truncate (sqrt n)))) (i 2)) + (cond ((= n 1) 0) + ((= i hi) 1) + ((= (remainder n i) 0) (begin (set! n (quotient n i)) + (+ (distance-iter hi i) 1))) + (else (distance-iter hi (+ i 1)))))) +(let loop ((a (read)) (b (read))) + (unless (eof-object? a) + (format #t "~a\n" (distance (quotient (* a b) (sqr (gcd a b))))) + (loop (read) (read)))) |