fork download
  1. (defun odai-pt13-559 (a b)
  2. (flet ((make-range (start end)
  3. (loop for i from START below END
  4. collect (ash 1 i) into bits
  5. finally (return (apply #'logior bits)))))
  6. (logcount (apply #'logior
  7. (mapcar (lambda (a[i] b[i])
  8. (make-range a[i] b[i]))
  9. a b)))))
  10.  
  11. (dolist (args (list '((1 3 5)
  12. (2 4 6))
  13. '((1 2)
  14. (5 6))
  15. '((100 1 2)
  16. (105 3 4))))
  17. (destructuring-bind (a b) args
  18. (format t "a={~{~D~^,~}}~%~
  19. b={~{~D~^,~}}~%~
  20. => ~D~2%"
  21. a b (odai-pt13-559 a b))))
  22.  
Success #stdin #stdout 0s 203840KB
stdin
Standard input is empty
stdout
a={1,3,5}
b={2,4,6}
=> 3

a={1,2}
b={5,6}
=> 5

a={100,1,2}
b={105,3,4}
=> 8