Здравствуйте, Wally!
Вы пишете:
Начать нужно с понимания того, что делает функция F.
Функция F(t) = 1, если t не делится на 3, и F(t) = 0, если t делится на 3.
Поэтому в предложенной программе в интервале от 20 до b подсчитывается количество чисел, которые не делятся на 3. В интервале (21;36] не делятся на 3 ровно 10 чисел, а всего чисел в интервале 15.
В интервале (36;51] не делятся на 3 ровно 10 чисел, а всего чисел в интервале 15.
Значит, нужно 5 таких интервалов, чтобы получить 50.
15*5 = 75.
21 делится на 3. Поэтому в количество чисел, которые не делятся на 3, 21 "вклад" не сделает.
21 + 75 = 96.
Таким образом, в интервале [21;96] будет ровно 50 чисел, которые не делятся на 3.
При этом 96 будет наибольшим значением b, так как 50 даст и b = 95 (96 делится на 3 и "вклада" не делает).
Но в задаче интервал начинается с 20. Это число увеличит количество чисел, которые не делятся на 3, на 1.
Поэтому нужно отбросить число 96, которое не делает "вклада", и отбросить число 95, которое "вклад" делает.
Ответ: 94.