How to find the minimal DFA for the language?
Your approach towards estimating the number of states is just fine. however the number of states looks quite intimidating and it may be cumbersome to minimize the DFA later.
 In such cases constructing the automaton through intersection is easier. for example as we know the regular languages are closed under the intersection operation we can devise 3 different automata to accept :
 1. String divisible by 25
 2. String divisible by 4
 3. Strings beginning with 101

And then arrive at the final automaton by taking intersections of the 3 machines.

How this helps?

Many of the states originally present in the different machines gradually become unreachable from the initial state in the final automaton and thus the number of states reduce or the DFA is minimized.