Простое скопление целого числа N выше , чем 2 , определяются как пара образована самым высоким простым строго снизить , чем N , а самый низкий премьер строго выше , чем N .
Обратите внимание, что согласно приведенному выше определению, если целое число само является простым, то его простой кластер является парой простых чисел, предшествующих и следующих за ним.
задача
Учитывая два целых числа N , M ( N, M ≥ 3 ), выведите истинное / ложное значение, основанное на том, имеют ли N и M один и тот же простой кластер.
Это код-гольф , поэтому цель состоит в том, чтобы максимально уменьшить количество байтов. Таким образом, самый короткий код на каждом языке программирования выигрывает.
Тестовые случаи / Примеры
Например, премьер - кластер из 9 является [7, 11]
, потому что:
- 7 - самое высокое простое число, строго меньшее 9 , и
- 11 - самое низкое простое число, строго выше 9 .
Точно так же первичное скопление 67 есть [61, 71]
(заметьте, что 67 простое).
Правдивые пары
8, 10 20, 22 65, 65 73, 73 86, 84 326, 318 513, 518
Ложные пары
4, 5 6, 8 409, 401 348, 347 419, 418 311, 313 326, 305
источник
Ответы:
Желе ,
64354 байтаПопробуйте онлайн! или попробуйте все контрольные примеры .
Как это работает
Работает, потому что два числа имеют разные простые кластеры, если между ними есть простое число, или любое число само является простым; если оба числа не совпадают, в этом случае все равно
E
возвращается1
(все элементы в массиве из одного элемента равны).источник
Perl 6 , 52 байта
Попробуй это
Expanded:
источник
Python 3 ,
1039591 байтПопробуйте онлайн!
источник
Рубин ,
5754 байтаПопробуйте онлайн!
Использует ужасный тест на регулярность регулярных выражений из моего ответа (о котором я забыл, пока не нажал на него) на связанный вопрос. Является ли это число простым? , Поскольку у нас N, M ≥ 3, проверка на 1 может быть удалена из шаблона, что делает количество байтов меньше, чем при использовании встроенного.
Примечание: тест на регулярность регулярных выражений патологически, смешно неэффективен. Я полагаю, что это по крайней мере O (n!), Хотя у меня нет времени, чтобы понять это прямо сейчас. Потребовалось двенадцать секунд, чтобы он проверил 100,001, и потратил пять или десять минут на 1000,001, прежде чем я отменил его. Используйте / злоупотребляйте на свой страх и риск.
источник
n²
. Вы знаете,100001! = 2824257650254427477772164512240315763832679701040485762827423875723843380680572028502730496931545301922349718873479336571104510933085749261906300669827923360329777024436472705878118321875571799283167659071802605510878659379955675120386166847407407122463765792082065493877636247683663198828626954833262077780844919163487776145463353109634071852657157707925315037717734498612061347682956332369235999129371094504360348686870713719732258380465223614176068 ... (Warning: The output exceeded 128 KiB and was truncated.)
что займет тысячелетия, чтобы бежать.Сетчатка , 58 байт
Попробуйте онлайн! Объяснение:
Если оба входа одинаковы, просто удалите все и перейдите к выходу 1 в конце.
Преобразовать в одинарный.
Сортировать по порядку.
Разверните до диапазона всех чисел.
Удалить все составные числа.
Если не осталось чисел, выведите 1, иначе 0.
источник
PARI / GP, 28 байт
Попробуйте онлайн со всеми тестами!
Возвращает
0
или1
(обычные «логические» значения PARI / GP).Объяснение:
v
должен быть вектором (или вектором столбца, или списком) с двумя числамиN
иM
координатами. Например[8, 10]
. Тогдаs
будет «множество», составленное из этих чисел, которое будет либо однокоординатным вектором (еслиN==M
), либо двухкоординатным вектором с отсортированными записями в противном случае.Тогда, если число
#s
координат вs
это только один, мы получаем1
(правда). В противном случае,primes
вернет вектор всех простых чисел в замкнутом интервале отs[1]
доs[2]
. Отрицание!
этого даст,1
если вектор пуст, а отрицание вектора одной или нескольких ненулевых записей (здесь одно или несколько простых чисел) даст0
.источник
JavaScript (ES6),
5756 байтПринимает ввод в синтаксисе карри
(a)(b)
. Возвращает0
или1
.Контрольные примеры
Показать фрагмент кода
Как?
источник
R ,
6346 байт-17 Джузеппе
Попробуйте онлайн!
Довольно простое применение решения ETHProductions 'Jelly . Главный интересный вывод
состоит втом, что с R булевы векторыany(x)==all(x)
эквивалентныmin(x)==max(x)
.источник
numbers
установлен вместоmin(x)==max(x)
это эквивалентно проверке того, что все элементы вis_prime(a:b)
них равны, мы можем использовать этот последний трюк, чтобы уменьшить его до 46 байт с помощью пакетаprimes
илиnumbers
.C (gcc),
153146 байт-7 от Джонатана Фреха
Определяет функцию,
h
которая принимает двеint
секунды и возвращает1
истину и0
ложьПопробуйте онлайн!
n
это функция, которая возвращает 1, если ее аргумент не прост.g
макрос, который устанавливает свой первый и второй аргументы для следующего простого числа меньше и больше, чем (соответственно) своего третьего аргументаh
делаетg
для обоих входов и проверяет, являются ли выходы одинаковыми.источник
return a==c&&b==d;
может бытьreturn!(a-c|b-d);
.Желе , 6 байт
Попробуйте онлайн!
-2 спасибо Денису .
источник
APL (Dyalog Unicode) ,
18 + 16 = 3424 байтаПопробуйте онлайн!
Благодаря Адаму за 10 байтов.
Линии
⎕CY'dfns'
( С ОП Y ) необходимо импортировать dfns ( д инамической е unctio нс ) сбор, включены по умолчанию Dyalog APL устанавливает.Как это работает:
источник
Python 2 ,
8786 байтПопробуйте онлайн!
источник
C (gcc) ,
103 байта100 байтовПопробуйте онлайн!
источник
Haskell , 81 байт
Простое решение:
Попробуйте онлайн!
источник
Mathematica,
392726 байтExpanded:
Применение:
Вклады: -12 байт от Jenny_mathy , -1 байт от Martin Ender
источник
Equal@@NextPrime[#,{-1,1}]&
принимает в качестве входных данных[{N,M}]
или, если вы хотите сохранить исходный ввод, используйте следующие 30 байт:Equal@@NextPrime[{##},{-1,1}]&
#~NextPrime~{-1,1}
.J 15 байт
Как это работает:
Попробуйте онлайн!
источник