Для решения этой задачи, давайте пройдемся по всем четырёхзначным числам, которые могут быть записаны в виде двух двузначных чисел. Первое двузначное число будем обозначать как ab, а второе как ba (где a и b — это цифры).
- Первое двузначное число:
ab= 10*a + b - Второе двузначное число:
ba= 10*b + a
На основании условий задачи:
- Второе число должно быть перестановкой первого, что уже учтено.
- Разность этих двух чисел должна равняться сумме цифр обоих чисел.
Разложим это математически:
- Разность: (10a + b) - (10b + a) = 9a - 9b = 9*(a - b)
- Сумма цифр: a + b (для числа
ab) и b + a (для числаba, они равны).
Тогда по условию задачи должно выполняться: \[ 9 \cdot (a - b) = a + b \]
Переписываем это уравнение: \[ 9a - 9b = a + b \] \[ 8a = 10b \] \[ a = \frac{10}{8}b = \frac{5}{4}b \]
Это значит, что a должно быть кратным 5, а b — кратным 4 (в масштабах от 0 до 9).
Поэтому допустимые значения для b могут быть 0, 4, и 8, а для a:
- Если
b = 0,a = 0, (не подходит, так как нечетырёхзначное число) - Если
b = 4,a = 5 - Если
b = 8,a = 10(не подходит, так как не существует цифры 10).
Таким образом, единственным вариантом является: ab = 54 и ba = 45.
Теперь проверим, выполняются ли все условия:
- Разность: \( 54 - 45 = 9 \)
- Сумма цифр: \( 5 + 4 = 9 \)
Эти условия выполняются. Теперь можем написать код для поиска всех подходящих чисел.
Вот пример кода на Python:
results = []
for num in range(1000, 10000):
a = num // 1000
b = (num // 100) % 10
c = (num // 10) % 10
d = num % 10
if (10 * a + b) - (10 * c + d) == (a + b) and c == b and d == a:
results.append(num)
# Выводим найденные числа
print(" ".join(map(str, results)))
print(len(results))
Этот код проверяет каждое четырёхзначное число и выводит все подходящие числа в одной строке, а затем количество найденных чисел на следующей строке.
Попробуйте выполнить этот код, чтобы увидеть результат!
