(defun fac (n)
(loop for result = 1 then (* result i)
for i from 2 to n
finally (return result)))
(defun zeros (n)
(loop for num = n then (/ num 10)
for zero = (zerop (rem num 10))
until (null zero)
summing 1 into result
finally (return result)))
(defun zero-fac (n)
(if (> n 100)
(let ((num-digits-over-hundred (- (ceiling (log n 10)) 3)))
(+ (* (truncate n 100) 25) (- (zeros (fac (rem n 100))) num-digits-over-hundred)))
(zeros (fac n))))
(loop repeat (read)
do (format t "~A~%" (zero-fac (read))))
KGRlZnVuIGZhYyAobikKICAobG9vcCBmb3IgcmVzdWx0ID0gMSB0aGVuICgqIHJlc3VsdCBpKQoJZm9yIGkgZnJvbSAyIHRvIG4KCWZpbmFsbHkgKHJldHVybiByZXN1bHQpKSkKCihkZWZ1biB6ZXJvcyAobikKICAobG9vcCBmb3IgbnVtID0gbiB0aGVuICgvIG51bSAxMCkKCWZvciB6ZXJvID0gKHplcm9wIChyZW0gbnVtIDEwKSkKCXVudGlsIChudWxsIHplcm8pCglzdW1taW5nIDEgaW50byByZXN1bHQKCWZpbmFsbHkgKHJldHVybiByZXN1bHQpKSkKCihkZWZ1biB6ZXJvLWZhYyAobikKICAoaWYgKD4gbiAxMDApCiAgKGxldCAoKG51bS1kaWdpdHMtb3Zlci1odW5kcmVkICgtIChjZWlsaW5nIChsb2cgbiAxMCkpIDMpKSkKICAgICgrICgqICh0cnVuY2F0ZSBuIDEwMCkgMjUpICgtICh6ZXJvcyAoZmFjIChyZW0gbiAxMDApKSkgbnVtLWRpZ2l0cy1vdmVyLWh1bmRyZWQpKSkKICAoemVyb3MgKGZhYyBuKSkpKQoKKGxvb3AgcmVwZWF0IChyZWFkKQogICAgICBkbyAoZm9ybWF0IHQgIn5BfiUiICh6ZXJvLWZhYyAocmVhZCkpKSk=