12. There are sqr.root(100) = 31 squares and cube root(100) = 10 cubes and
6th.root(100) = 3 numbers that are both squares and cubes (6th powers). Therefore
the answer is 31+10-3=38.
14. There are 26! strings in all. To count the strings that contain fish, we
glue these 4 letters together, to form a single token, and permute it with the
other 22 letters, to give 23! such strings. Similarly there are 24! strings that
contain the rat and 23! strings that contain bird. Furthermore, there are 21!
strings that contain both fish and rat (just glue the 2 words into a single
token), but there are no strings that contain bird and fish or bird and rat (since
each letter occurs only once). Therefore, the answer is 26!--23!-24!-23!+21!,
approx. = 4.0 x 10^26.