Напишите цикл while, который выходит, когда сумма квадратов 1^2 + 2^2 + 3^2 + ... превышает вход m. Распечатайте самую большую сумму, меньшую m, и количество членов в сумме.Может ли кто-нибудь помочь с этой задачей?
Example: If m = 18 then
1^2 +2^2 + 3^2 = 1 + 4 + 9 = 14
1^2 +2^2 + 3^2 + 4^2 = 1 + 4 + 9 + 16 = 30
Поэтому вы должны напечатать 3 и 14 при т = 18.
Это то, что я до сих пор, и я в основном полностью утрачена в данный момент:
def sum_printer():
y = input("Please enter a maximum number: ")
y = int(y)
for result in range(y):
while result + result ** 2 >= y:
break
else:
print(str(result) + "^2 =", result ** 2, end=" ")
def sum_of_squares_result(m, n):
return sum(result ** 2 for result in range(m, n))
sum_printer()
Не могу понять, куда мне идти. Вычисление сумм квадратов не является проблемой, и не прерывает цикл for, когда сумма квадратов превышает вход пользователя. Я просто не могу понять, как печатать 3 и 14 на основе ввода.
Спасибо! Кажется, я делал это слишком сложным с циклом for, когда это не было необходимо. – Mike