Предмет: Информатика, автор: narenankpop13

Задача №149. Теорема Лагранжа (python)

Теорема Лагранжа утверждает, что любое натуральное число можно представить в виде суммы четырех точных квадратов. По данному числу n найдите такое представление: напечатайте от 1 до 4 натуральных чисел, квадраты которых дают в сумме данное число.


Входные данные

Программа получает на вход одно натуральное число n < 10000.


Выходные данные

Программа должна вывести от 1 до 4 натуральных чисел, квадраты которых дают в сумме данное число.


Примеры

входные данные

3

выходные данные

1 1 1

входные данные

7

выходные данные

2 1 1 1


Помогите, с обяснением, дам 30 баллов.

Ответы

Автор ответа: daniil062
1

from math import sqrt

# Ввод числа

n = int(input())

# Находим 4 числа

for i in range(4):

   # Вычисляем корень из исходного числа - он будет в типе float, приводим его в тип int

   s = int(sqrt(n))

   # Отнимаем квадрат получившегося числа от исходного. Заметьте, что т.к. мы привели float в int, у нас остаётся остаток в числе int, который будет использоваться на следующей итерации

   # Проще говоря, отбрасывается вещественная часть числа и остаётся только целая

   n -= s ** 2

   # Проверяем, что полученное число не 0 (по условию в примерах нули не выводятся)

   if s != 0:

       # Вывод

       print(s, end=" ")

Приложения:
Похожие вопросы
Предмет: Физкультура и спорт, автор: evgenlesin86