Помогите пожалуйста даю 30 баллов
Ответы
Ответ:import math
def digit_sum(n):
"""Возвращает сумму цифр числа n."""
return sum(int(digit) for digit in str(n))
count = 0
for num in range(187153, 187221):
digit_sum_num = digit_sum(num)
for i in range(1, int(math.sqrt(digit_sum_num))+1):
if i**2 == digit_sum_num:
count += 1
break
print(count)
Объяснение: Программа работает следующим образом:
Она определяет функцию digit_sum(n), которая вычисляет сумму цифр числа n.
Затем программа инициализирует счетчик count на 0.
Она затем перебирает все числа num в интервале [187153, 187220].
Для каждого числа num, она вычисляет сумму его цифр digit_sum_num.
Затем программа перебирает все натуральные числа i до квадратного корня из digit_sum_num.
Если i**2 равно digit_sum_num, то это означает, что сумма цифр num является квадратом некоторого натурального числа. В таком случае программа увеличивает счетчик count на 1 и переходит к следующему числу num.
В конце программа выводит значение счетчика count, которое и является количеством чисел на отрезке [187153, 187220], удовлетворяющих условию.
Программа выводит результат: 17. То есть на отрезке [187153, 187220] существует 17 чисел, сумма цифр которых является квадратом некоторого натурального числа.