Мы можем свернуть натуральные числа в прямоугольную спираль:
17--16--15--14--13
| |
18 5---4---3 12
| | | |
19 6 1---2 11
| | |
20 7---8---9--10
|
21--22--23--24--25
Но теперь, когда они расположены на прямоугольной сетке, мы можем разматывать спираль в другом порядке, например, по часовой стрелке, начиная с севера:
17 16--15--14--13
| | |
18 5 4---3 12
| | | | |
19 6 1 2 11
| | | |
20 7---8---9 10
| |
21--22--23--24--25
Результирующая последовательность явно является перестановкой натуральных чисел:
1, 4, 3, 2, 9, 8, 7, 6, 5, 16, 15, 14, 13, 12, 11, 10, 25, 24, 23, 22, 21, 20, 19, 18, 17, ...
Ваша задача - вычислить эту последовательность. ( OEIS A020703 , но предупреждение о спойлере: оно содержит другое интересное определение и несколько формул, которые вы, возможно, захотите выяснить самостоятельно.)
Интересный факт: все 8 возможных заказов на разматывание имеют свои собственные записи OEIS.
Соревнование
Если задано положительное целое число n, вернуть nэлемент вышеупомянутой последовательности.
Вы можете написать программу или функцию, принимая ввод через STDIN (или ближайшую альтернативу), аргумент командной строки или аргумент функции и выводя результат через STDOUT (или ближайшую альтернативу), возвращаемое значение функции или параметр функции (out).
Применяются стандартные правила игры в гольф .
Тестовые случаи
1 1
2 4
3 3
4 2
5 9
6 8
7 7
8 6
9 5
100 82
111 111
633 669
1000 986
5000 4942
9802 10000
10000 9802
Полный список до и включая n = 11131 смотрите b-файл на OEIS .