Надіслати розв'язок

Бали: 3,00
Time limit: 0.5s
Memory limit: 256M
Input: stdin
Output: stdout

Problem type

Знайдіть усі способи подати вказане натуральне ~N~ як суму двох квадратів (тобто, ~N=x^2+y^2~, де ~x~, ~y~ – цілі додатні).

Вхідні дані

Єдиний рядок містить єдине число ~N~ (~1\leqslant N\leqslant 10^{13}~).

Результати

Виведіть всі пари цілих додатних ~x~, ~y~, таких, що ~x^2+y^2=N~. Пари, де ~x~ та ~y~ лише переставлені місцями, слід вважати різними (при ~x\neq y~) й виводити кожну окремо. Перелік пар обов'язково повинен бути впорядкованим за зростанням ~x~.

Приклади

Вхід

16

Результат



Вхід

10

Результат

1 3
3 1

Вхід

4225

Результат

16 63
25 60
33 56
39 52
52 39
56 33
60 25
63 16

Примітки

  1. Просять вивести лише розкладення в суму квадратів цілих додатних, тому в першому тесті нема й не можна виводити ні ~0^2+4^2~, ні ~4^2+0^2~. З тієї ж причини, у третьому тесті нема й не можна виводити ні ~0^2+65^2~, ні ~65^2+0^2~.

  2. Якщо вказане ~N~ неможливо подати як ~x^2+y^2~, слід просто нічого не виводити. DMOJ налаштований так, що йому байдуже, чи це буде взагалі жодного байту, чи саме лише переведення рядка; але в будь-якому разі зайві видимі символи заборонені; зокрема, коли нема способів подати ~N~ як ~x^2+y^2~, виведення мусить не містити жодного видимого символу.


Коментарі

Please read the guidelines before commenting.


Ще немає коментарів.