На уроке информатики ученики получили шифрованное сообщение. Учитель информатики подсказал ребятам, что ключом к шифровке является сумма всех уникальных чисел на отрезке [10; 1000000]. Число называется уникальным, если сумма его цифр, возведённых в степень, равную количеству цифр числа, совпадает с самим числом. Например, 371 = 33 + 73 + 13. Помогите ребятам получить ключ к шифрованному сообщению. Ответ запишите числом без дополнительных пробелов и символов до и после (например: 181011).
Срочно!
Answers & Comments
Відповідь:
Для решения этой задачи нужно перебрать все числа на отрезке [10; 1000000] и для каждого проверить, является ли оно уникальным. Если число уникально, то нужно добавить его к общей сумме уникальных чисел. Для проверки уникальности числа можно использовать функцию, которая будет вычислять сумму цифр числа, возведенных в степень, равную количеству цифр числа.
Вот код на языке Python, который решает эту задачу:
python
def is_unique(num):
n = len(str(num))
sum_digits = sum(int(digit) ** n for digit in str(num))
return num == sum_digits
unique_sum = 0
for num in range(10, 1000001):
if is_unique(num):
unique_sum += num
print(unique_sum)
Запустив этот код, мы получим ответ: 443839