Хм... наверно, упаковки придется открыть... тогда для настоящего программиста задачка очень проста.
Ложим на весы одну таблетку из первой пачки, две из второй, четыре из третьей, восемь из четвертой, 16 из пятой.
Взвешиваем, из веса в граммах отнимаем вес, если бы были они все фальшивые, то есть 31.
Далее получившееся значение раскладываем по степени двойки и получаем где есть настоящее:
0 - все фальшивые
1 - настоящие в 1-й
2 - настоящие во 2-й
3 - настоящие во 1-й и 2-й
4 - настоящие в 3-й
5 - настоящие в 1-й и 3-й
6 - настоящие в 2-й и 3-й
7 - настоящие в 1-й и 2-й и 3-й
8 - настоящие в 4-й
9 - настоящие в 4-й и 1-й
ну и т.д.