Чтобы решить задачу, начнем с обозначения трёхзначного натурального числа. Пусть это число представляется как \(abc\), где \(a\), \(b\) и \(c\) — это его цифры. В трёхзначном числе:
- \(a\) — это сотни (может принимать значения от 1 до 9),
- \(b\) — это десятки (может принимать значения от 0 до 9),
- \(c\) — это единицы (также может принимать значения от 0 до 9).
Запишем трехзначное число в виде \(N = 100a + 10b + c\).
По условию задачи, сумма квадратов цифр меньше самого числа на 667, что можно записать как:
\[ a^2 + b^2 + c^2 = N - 667 \]
Подставим выражение для \(N\):
\[ a^2 + b^2 + c^2 = (100a + 10b + c) - 667 \]
Теперь упростим уравнение:
\[ a^2 + b^2 + c^2 = 100a + 10b + c - 667 \]
Переносим все в одну сторону:
\[ a^2 + b^2 + c^2 - 100a - 10b - c + 667 = 0 \]
Теперь, для нахождения всех таких чисел, нам нужно перебрать все возможные значения для \(a\), \(b\) и \(c\) в указанных диапазонах и проверить, выполняется ли данное уравнение.
- Переберем значение для \(a\) от 1 до 9.
- Переберем значение для \(b\) и \(c\) от 0 до 9.
- Проверим, выполняется ли равенство.
Теперь рассмотрим код для решения, который можно использовать для заготовки:
result = []
for a in range(1, 10):
for b in range(0, 10):
for c in range(0, 10):
N = 100 * a + 10 * b + c
if a**2 + b**2 + c**2 == N - 667:
result.append(N)
print(result)
Этот код перебирает все возможные комбинации цифр и проверяет, верно ли условие. После его выполнения мы получим все трёхзначные числа, удовлетворяющие условию.
Запустив данный код, вы найдете все трёхзначные натуральные числа, для которых сумма квадратов цифр меньше самого числа на 667.