Этот вызов был изначально изолирован в песочнице Урной Магического Осьминога; Я принял и разместил его с его разрешения.
Это нить полицейских. Нить грабителей здесь .
Соревнование
- Шаг первый: напишите фрагмент кода (функция или полная программа), который проверяет простоту .
- Шаг второй: удалите кусочки вашего кода, заменив символы на символ
█
. - Шаг третий: Опубликовать отредактированный код в ветке полицейских.
- Шаг четвертый: Подождите, пока ваш код будет взломан, и попробуйте взломать код другого.
Например, Groovy код {it.isPrime()}
может стать {██.is█████()}
. (Это было бы глупо легко взломать; также, я знаю, .isPrime()
это не метод Groovy.)
счет
Вы должны включить оценку вашей программы в ее представлении. Оценка определяется как отношение отредактированных символов к символам. Таким образом, если бы в вашей программе было 20 символов и 5 были отредактированы, ваш счет был бы равен 0,25. Код Groovy, приведенный выше, будет иметь оценку 0,5.
правила
- Ваша программа должна обрабатывать только положительные целые числа. Он должен вывести истинное значение, если число простое, и ложное значение в противном случае. Пожалуйста, укажите в своем ответе, что он выводит.
- Ваш код не может содержать комментарии или ненужные пробелы.
- Нет хеширования или криптографического запутывания.
- Ваш код может быть отредактирован не более чем на 50% (должно быть указано не менее половины символов). Это означает, что максимально возможная оценка составляет 0,5.
- Если ваш ответ не был взломан в течение недели, вы можете пометить его как безопасный и отредактировать его.
выигрыш
Победитель получит самый низкий балл без ответов в течение двух недель после публикации. В случае ничьей победит тот, кто наберет наибольшее количество голосов. Эта ветка всегда открыта для дополнительных материалов, но победитель, выбранный через две недели, будет постоянным.
n >= 1
или все целые числа?)Ответы:
Функтоид , балл = 14/223 ≈ 0,062780 [безопасно]
Принимает входные данные как аргумент командной строки и выходы
True
(простой) илиFalse
, попробовать его в Интернете!Подсказка (добавлено через 4 дня после публикации):
Решение
Попробуйте онлайн!
объяснение
Из-за случайности, которая возникает из-за
?
этого, невозможно сгладить программу. Вот плоская программа с вопросительным знаком, где будет случайное выражение:Полная программа:
The
{trial_division}
:{recursive_call}
, принимая аргументыf
(самостоятельная ссылка),x
иy
(примечание0
такое же, какFalse
){divides}
это?(yg(KZ)(C(C(BB(BS(b(C(BBI)I))))(C(BC(b(C(BBI)I)))I))(C-)))
где?
случайным образом выбирается ( в зависимости от случайного направления) от:Y
S(CBO)(CBO)
S(SB(KO))(BBSBKO)
Все они эквивалентны друг другу, поэтому
{divides}
становится точкой отсчета:{recursive_call}
это довольно запутанное выражение, которое в основном просто делаетf x (y-x)
источник
8086 DOS COM, 87 байт, оценка 19/87 ~ = 0,2183
Трещины на NieDzejkob
Это программа COM; ожидает число в качестве аргумента командной строки, выводит Y или N. Предел: 65535, потому что 16-битный процессор (sizeof (int) будет 2). Новая строка 0x0D 0x0A на этой платформе. Да, вы считаете 20 █ вместо 19 █. Один из них настоящий █ и не был заменен. Muhahaha.
Пробел в позиции 10 на самом деле является байтом NUL. Символ для NUL такой же, как пробел в старом шрифте VGA.
источник
╛üX
в самом началеmov si, 0x5881
.Swift 4 , оценка 26/170 ≈ 0,153, безопасно
Попробуйте онлайн!
Преднамеренная трещина
Ungolfed
источник
brainfuck , 37/540 байт (оценка: 0,06851) ( взломано нитродоном)
Попробуйте онлайн!
Печатает «простое», если простое, «не простое», если составное. Технически работает для произвольных целых чисел, но время ожидания на TIO для чисел выше 6000
источник
Система Mathematica, 97 байт, оценка 0,2989690722 ( Трещины )
Строки! Regex! Штрихи?
Там является такая вещь , как регулярное выражение проверки простоты, но это не случается здесь.
Это было взломано , но способ, которым я намеревался, был совсем другим, поэтому я пока не буду раскрывать предполагаемое решение.
источник
Желе , оценка 0. (142857) ( трещины )
Попробуйте онлайн!
Повторяю мой другой ответ, на этот раз с еще несколькими байтами, показанными, чтобы избежать непреднамеренных читов.
источник
Октава , счет: 0,15 (86 байт)
Я обнаружил еще несколько персонажей. Я думал, что критерием победы был самый высокий балл, а не самый низкий .
Попробуйте онлайн!
Удачи =)
источник
Python 3, 388 байт, .155, треснувший
Трещина в последнюю минуту. Да, это тест Миллера-Рабина.
Я предполагаю, что вероятностные тесты разрешены, неопределенность 2 ^ -100
Ну, отличный совет в предыдущем предложении, хотя
Сделано возвращаемое значение 0 как композитный и 1 как вероятный премьер
* 368> 388: исправлена проблема, когда z <4
Решение:
источник
"COMPOSITE"
нарушает дух правила «Ваш код может не содержать никаких комментариев или ненужных пробелов».095 , оценка 0,201212820512 [Сейф]
Печатает 1, если простое, 0, если составное
Решение:
источник
Узел JavaScript, оценка: 0,4
Вот где это работает.Полная программа, которая принимает входные данные из первого аргумента командной строки и выводит их в стандартный вывод.
Надеюсь, это не очень сложное решение, чтобы начать это.
Используя этот фрагмент для подсчета очков.
источник
Желе , оценка 0. (142857)
Попробуйте онлайн!
Принимает аргумент командной строки.
False =
0
True =
1
источник
JavaScript, 103 байта, оценка 0,1923
x=>{if(x<4)return(!0);for(y=x>>>Math.log10(p=████;--y-1;(p=x/y%1)████if(██&&(███))break████return(███)}
Возвращает логическое значение.
Непреднамеренная трещина
источник
Javascript, оценка 0,1894093686354379
Удачи. :п
позвоните е с тем простым числом, которое хотите проверить.
источник
t
.> <>, оценка 0.096, взломан Джо Кингом
Преднамеренная трещина:
источник
v
является безусловным бесконечным циклом?Brain-Flak, счет: 35/134 = 0,2612 ( треснул! )
(({████){██[████)█>(({}))<>}<>{}███{}((██({}))█████{}]██)({}(<>))<>{(({})){({}[()])<>}{}}{}<>([{}()]{})██[██()██(()█[()]██{}██}{}<>{})
Возвращает 1 для простого, 0 для составного.
Это очень сложный язык для решения этой проблемы, поскольку форматирование настолько ограничено, что требуются усилия, чтобы не понять, что такое пропущенный символ.
Это очень сложный язык для решения этой проблемы, так как его нелегко читать.
источник
Java 1.4+ , 24/145 (0.16551724137)
Попробуйте онлайн!
Самый странный способ, которым я видел, чтобы проверить на Java, безусловно, лол.
источник
Japt, 19 байт, 0.315789 ... оценка, сейф
Я не знаю, скрыл ли я больше этого, чем нужно, стоило мне лучшего результата.
View solution (Объяснение в ближайшее время)
источник
C 34/76 = 0,447368, Safe
Наличие такого количества пробелов означает, что у меня будет гораздо больше шансов получить непреднамеренную трещину, чем намеченная.
Решение:
объяснение:
источник
M , оценка: 4/22 = 0,1818 ..., трещины от Dennis
Это может привести к непреднамеренной трещине, мы должны это увидеть.Это сделал.Решения Денниса это
Попробуйте онлайн!
Я оставлю свое решение скрытым, чтобы кто-то взломал. Моим намеком на Денниса в его подчинении было слово «зоопарк».
источник
C, 66 байт, 29 отредактировано, оценка 0,439
Просто простая подача C; Я посмотрю, сколько времени это займет, прежде чем я опубликую действительно злого.
источник
Pyth , оценка: ~ 0. (461538) (13 байт) ( треснувший )
Попробуйте взломать это здесь!
источник
sh + coreutils, оценка 19/143 ~ = 0,1328
Трещины
TIO
источник
Brain-Flak , оценка 29/140 = 0,207
({}██()██<>){██({}[()])██{}{}███({<({}[()])><>({})<>}{}██████{}██){(({})){({}[()])<>}{}}<>([{}()]{}<>{})<>}(<>██{}({}████)((){[()]██{}██}{})
Попробуйте онлайн!
Выходы 1 для простого и 0 для не простого.
источник
Тампио (обязательно), оценка: 24/51 = 0,5
Это очевидное решение, я надеюсь, что никто здесь не понимает финский.
источник
Тампио (обязательно), оценка: 26/223 = 0,11659 ...
источник
Пыть , оценка: 0,288288 ... [Сейф]
Выводит «True», если простое, «False», если нет
Забыл упомянуть, что это вероятностный тест.
Решение:
Это реализует критерий примитивности Соловея-Штрассена.
Попробуйте онлайн здесь!
источник
Рубин, 27/73 = 0,369863
Это должно быть весело.
источник
Python 3 , оценка: 0,386363, трещины
Вначале собираюсь получить очень низко висящие фрукты. Я скоро придумаю нахальный ответ.
user71546 сделал это "работа" с
... но это было непреднамеренно. Исходный код был
Оказывается, ни одна из них не работает для x <2. К сожалению.
источник
JavaScript (ES7), 297 байт, 103 отредактировано, .347
Мой предыдущий ответ на Python был слишком прямолинейным, так что вот злой;)
Однако логика проста.
источник