(defun odai-pt13-559 (a b)
(flet ((make-range (start end)
(loop for i from START below END
collect (ash 1 i) into bits
finally (return (apply #'logior bits)))))
(logcount (apply #'logior
(mapcar (lambda (a[i] b[i])
(make-range a[i] b[i]))
a b)))))
(dolist (args (list '((1 3 5)
(2 4 6))
'((1 2)
(5 6))
'((100 1 2)
(105 3 4))))
(destructuring-bind (a b) args
(format t "a={~{~D~^,~}}~%~
b={~{~D~^,~}}~%~
=> ~D~2%"
a b (odai-pt13-559 a b))))
KGRlZnVuIG9kYWktcHQxMy01NTkgKGEgYikKICAoZmxldCAoKG1ha2UtcmFuZ2UgKHN0YXJ0IGVuZCkKICAgICAgICAgICAobG9vcCBmb3IgaSBmcm9tIFNUQVJUIGJlbG93IEVORAogICAgICAgICAgICAgICAgIGNvbGxlY3QgKGFzaCAxIGkpIGludG8gYml0cwogICAgICAgICAgICAgICAgIGZpbmFsbHkgKHJldHVybiAoYXBwbHkgIydsb2dpb3IgYml0cykpKSkpCiAgICAobG9nY291bnQgKGFwcGx5ICMnbG9naW9yCiAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIgKGxhbWJkYSAoYVtpXSBiW2ldKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1ha2UtcmFuZ2UgYVtpXSAgYltpXSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSBiKSkpKSkKCihkb2xpc3QgKGFyZ3MgKGxpc3QgJygoMSAzIDUpCiAgICAgICAgICAgICAgICAgICAgICAoMiA0IDYpKQogICAgICAgICAgICAgICAgICAgICcoKDEgMikKICAgICAgICAgICAgICAgICAgICAgICg1IDYpKQogICAgICAgICAgICAgICAgICAgICcoKDEwMCAxIDIpCiAgICAgICAgICAgICAgICAgICAgICAoMTA1IDMgNCkpKSkKICAoZGVzdHJ1Y3R1cmluZy1iaW5kIChhIGIpIGFyZ3MKICAgIChmb3JtYXQgdCAiYT17fnt+RH5eLH59fX4lfgogICAgICAgICAgICAgICBiPXt+e35Efl4sfn19fiV+CiAgICAgICAgICAgICAgID0+IH5EfjIlIgogICAgICAgICAgICBhIGIgKG9kYWktcHQxMy01NTkgYSBiKSkpKQo=
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