With a single Solve command, I think this is impossible. But you can do something like the following. There are some strange curly brackets in your equation, so I hope I repaired it correctly. (I did not find a solution, and FindInstance did not give a solution either.)
Monitor[Table[{p,s, sol=Solve[(n^2 (s-2)-n (s-4))/2==2^p-1 && 2<n<2100, n,Integers] }, {p,1,9},{s, 10, 20}], {p,s,sol}]
Monitoring does not show much here, because the result turns up almost immediately.
Instead of Monitor, you can use a Print command inside the Table:
Table[sol=Solve[(n^2 (s-2)-n (s-4))/2==2^p-1 && 2<n<2100, n,Integers];
Print[{p,s,sol}]; {p,s,sol}, {p,1,9},{s,10, 20}]
If you do not want to see the empty results, you can do something like
result = {};
Do[sol = Solve[(n^2 (s - 2) - n (s - 4))/2 == 2^p - 1 && 2 < n < 2100,
n, Integers];
If[sol != {}, Print[{p, s, sol}];
AppendTo[result, {p, s, sol}]], {p, 1, 9}, {s, 10, 20}];
result
You might place the Do
-loop in a Monitor
, replace the Print
statement with qq={p,s,sol}
and use qq
in the second argument of Monitor
.