Advertisement
Guest User

Untitled

a guest
Oct 5th, 2011
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. #lang scheme
  2.  
  3. (define (pred-census p k) ;cant pass sum-of-3-squares as p because it needs 4 arguments, but only takes 3 here
  4. (define (pred-census-aux a b c counter)
  5. (cond ((> c k) counter)
  6. ((> a k) (pred-census-aux 1 (+ b 1) c counter))
  7. ((> b k) (pred-census-aux a 1 (+ c 1) counter))
  8. ((p a b c) (pred-census-aux (+ a 1) b c (+ counter 1)))
  9. (else (pred-census-aux (+ a 1) b c counter))))
  10. (pred-census-aux 1 1 1 0))
  11.  
  12. (define (pythag a b c)
  13. (= (* c c) (+ (* a a) (* b b))))
  14.  
  15. (define (sum-of-3-squares a b c k)
  16. (= k (+ (* a a) (* b b) (* c c))))
  17.  
  18.  
  19. ;> (/ (pred-census pythag 50) 2) ;divide by two because pred-census detects triples twice, ie: 3 4 5 and 4 3 5
  20. ;20
  21. ;> (/ (pred-census pythag 20) 2)
  22. ;6
  23.  
  24.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement