Scientific notations with negative powers for plotting

Plot[x^2, {x, 0, 100},Ticks -> {{#, ScientificForm@#} & /@ Range[0., 100., 30.], {#, ScientificForm@#} & /@ Range[0., 100^2, 1000.]}, PlotRange -> All];  PowerTicks[label_][min_, max_] :=Block[{min10, max10}, min10 = Floor[Log10[min]];  max10 = Ceiling[Log10[max]]; Join[Table[{10^i,If[label, Superscript[10, i], Spacer[{0, 0}]]}, {i, min10, max10}], Flatten[Table[{k 10^i,Spacer[{0, 0}], {0.005, 0.`},{Thickness[0.001`]}}, {i, min10,max10}, {k, 9}], 1]]] ListLogLogPlot[Range[20]^3, Frame -> True, FrameTicks -> {{PowerTicks[True],PowerTicks[False]}, {PowerTicks[True], PowerTicks[False]}}] 

The above code very well for the positive powers. Could some one please check it how does it change for the negative powers. More specific, on both axes the scales should be rangeing {10^-5, 10^-4....10^0, 10^1, 10^2,...10^5}. Thanks!