Дано натуральное число n.
Требуется найти два различных натуральных числа x,y таких что:
- x2+y2 = n
- x < y и y - x имеет минимальное возможное значение
Например, если n равно 145, то ответом будет пара чисел (12, 1). (это единственное представление).
Например, для n = 50 , то ответом будет (1, 7), хотя есть и другое представление суммой квадратов: (5, 5). ((5,5) не удовлетворяет условию различные).
Например, для n = 10000 то ответом будет (18, 26), хотя и другое предстваление (10, 30). (разница между 30 и 10 больше чем у 26 и 18)
Ваша задача: написать функцию get_squares_summing_to_n, которая
принимает положительное целое число n и возвращает два числа (возрастающих), сумма квадратов которых равна n.
Если таких чисел нет, функция должна вернуть None.
В табл. 2.19 показаны ожидаемые результаты для некоторых входных данных.
Таблица 2.19. Некоторые ожидаемые результаты для задачи суммы двух квадратов |
n |
Ожидаемый результат |
50 |
1 7 |
145 |
1 12 |
1000 |
18 26 |
540 |
None |