Здесь есть несколько решений:
1) Числа с 11 по 64 (54 числа)
2) Числа с 16 по 65 (50 чисел)
3) Числа с 23 по 67 (45 чисел)
4) Числа с 53 по 82 (30 чисел)
5) Числа с 62 по 88 (27 чисел)
6) Числа с 69 по 93 (25 чисел)
Как найти.
Искомые двузначные натуральные числа образуют арифметическую прогрессию из 'k' элементов, начиная с числа 'a':
a + (a + 1) + (a + 2) + ... + (a + k - 1) = 2025
a × k + (0 + 1 + 2 + ... + k - 1) = 2025
a × k + k × (k - 1) / 2 = 2025
2 × a × k + k × (k - 1) = 4050
k² + (2 × a - 1) × k - 4050 = 0
10 ≤ a < 100
Получаем обычное квадратное уравнение относительно 'k', которое нужно решить в целых числах.
D = (2 × a - 1)² + 4 × 4050 = (2 × a - 1)² + 16200
k = (√D - (2 × a - 1)) / 2
(берём только больший корень, т.к. меньший - заведомо отрицательный)
Перебираем все 'a' из указанного диапазона, для которых 'D' является полным квадратом. Например, таким питоновским скриптом, и им же можно сразу напечатать диапазоны решений:
from math import isqrt
for a in range(10, 100):
b = 2 * a - 1
d = 16200 + b * b
r = isqrt(d)
if r * r == d:
print(d, r, (r - b) // 2, a, '-', a + (r - b) // 2 - 1)
Можно и на C++, просто возиться дольше:
for (uint a = 10; a < 100; a++) {
const uint b = a * 2 - 1;
const uint d = 16200 + b * b;
const uint r = (uint)sqrt(d);
if (r * r == d)
cout << d << ' ' << r << ' ' << (r - b) / 2 << ' '
<< a << " - " << a + (r - b) / 2 - 1 << endl;
}
(заголовки, std, main - это уж самостоятельно сделай)