Нехай z
буде складне число. z
є n-м примітивним коренем єдності, якщо для певного додатного цілого n
і для будь-якого додатного цілого k < n
.
Виклик
Напишіть повну програму або функцію, яка, отримавши ціле додатне ціле число n
, виводить усі n-ті примітивні корені єдності. Ви можете виводити їх у полярній формі ( e^θi
або e^iθ
, аргумент має бути десятковою з принаймні двома знаками після коми) або прямокутною формою ( a + bi
або подібною формою, реальні та уявні частини також повинні бути десятковими знаками), і вони можуть бути виведені у списку вашої мови / формат масиву або як рядок з числами, розділеними пробілами чи новими рядками. Вбудовані, які обчислюють n-е коріння єдності або n-ті примітивні корені єдності, не допускаються.
Це код-гольф , тому найкоротший код у байтах виграє.
Зразки входів і виходів
6 -> e^1.05i, e^-1.05i # polar form
3 -> e^2.094395i, e^-2.094395i # any number of decimal places is OK as long as there are more than 2
8 -> 0.707 + 0.707i, 0.707 - 0.707i, -0.707 + 0.707i, -0.707 - 0.707i # rectangular form
1 -> 1 + 0i # this is OK
1 -> 1 # this is also OK
4 -> 0 + i, 0 - i # this is OK
4 -> i, -i # this is also OK