Определения
Функция Эйлера Пи (функция токового AKA ): функция, которая принимает положительное число и возвращает число положительных чисел меньше заданного числа, которые взаимно просты с заданным числом. Обозначается как
φ(n)
.Достижимое номер : если существует целое положительное число
x
такое , чтоφ(x) == n
, тоn
есть достижимы .
задача
Напишите функцию / программу, чтобы определить, достижимо ли данное положительное целое число.
вход
Положительное число в любом разумном формате. Можно предположить, что число находится в пределах возможностей языка. Унарный ввод принят.
Выход
Два непротиворечивых значения, одно для доступных номеров, а другое для недоступных номеров. Эти два значения могут быть чем угодно, если они согласованы.
Testcases
Доступные цифры ниже 100
:
1, 2, 4, 6, 8, 10, 12, 16, 18, 20, 22, 24, 28, 30, 32, 36, 40, 42, 44, 46, 48, 52, 54, 56, 58, 60, 64, 66, 70, 72, 78, 80, 82, 84, 88, 92, 96
( A002202 в OEIS)
правила
Применяются стандартные лазейки .
Критерий победы
Это код-гольф . Представление с самым низким числом байтов выигрывает.
Ссылки
источник
phi(n) = count { m : 1 <= m <= n AND (m,n) are coprime }
... это правда?Ответы:
Желе ,
76 байтНе совсем быстро. Возвращает 1 или 0 .
Попробуйте онлайн!
Как это устроено
источник
Mathematica, 28 байт
Как и ответ Денниса «Желе», мы вычисляем значения φ всех чисел вплоть до квадрата ввода и видим, есть ли в нем вход. Возвращает,
False
если вход достижим, аTrue
если нет. Да, это сбивает с толку. НоFreeQ
это байт корочеMatchQ
, и, эй, спецификация говорит, что любые два последовательных значения> :)источник
JavaScript (ES6),
9082 байтаВозвращает
0
илиtrue
.Это основано на предположении, что если x существует, то x ≤ 2n . Если доказано ложь, это следует обновить, чтобы использовать
x=n*n
вместоx=n*2
(тот же размер, гораздо медленнее).Краевой случай равен n = 128, что требует вычисления ϕ (255) .
демонстрация
Показать фрагмент кода
источник
n=2
,n=8
,n=128
,n=32768
иn=2147483648
.Аксиома, 56 байт
я не знаю, правильно ли это ... тестовый код и результаты
Диапазон 1 .. (2 * x) будет в порядке, пока вход x = 500 ...
источник
Пари / ГП , 34 байта
Возвращает,
0
если достижимо,1
если нет.Попробуйте онлайн!
источник
05AB1E , 5 байтов
Объяснение:
Попробуйте онлайн!
источник
05AB1E ,
1312 байтРЕДАКТИРОВАТЬ : Сохраненный байт, потому что ввод используется повторно, если в стеке недостаточно элементов.
Выходы 1, если достижимо, 0, если нет.
Полагается, что x ≤ 2n, если он существует.
Попробуйте онлайн!
Как это устроено
источник
C, 123 байта
Попробуйте онлайн
источник